Brakuje mi tego.
99% czasu CloudFormation jest całkiem dobry w dostarczaniu wiadomości debugowania, z którymi możesz pracować, ale „Nieprawidłowe żądanie” spowodowało u mnie zakłopotanie, szczególnie gdy zasób jest dość prosty.
Mówi się, że zasób daje mi problemy (szablon generowany przez Ansible, stąd notacje {{...}}),
"DatabaseDNSRecord": {
"Type": "AWS::Route53::RecordSet",
"Properties": {
"HostedZoneId": "HOSTED_ZONE_ID",
"Name": "db.{{ item.env_name|lower }}v2.<DOMAIN>.com.",
"ResourceRecords": [
{
"Fn::GetAtt": [ "Database", "Endpoint.Address" ]
}
],
"Type": "CNAME"
},
"DependsOn": "Database"
}
Z tego, co mogę powiedzieć na podstawie dokumentów, wszystko, co jest wymagane, jest obecne, poprawne i we właściwym formacie.
Jedyne, co mogę wymyślić, to dodanie tego zasobu do istniejącego stosu CloudFormation, który utworzyłem wcześniej, który już utworzył Database
zasób, który dla rekordu jest AWS::RDS::DBInstance
(chętnie opublikuję szablon zasobu również w razie potrzeby, nic specjalnego) .
Jakieś pomysły, dlaczego otrzymuję „Nieprawidłowe żądanie”?
Dzięki.
Edycja: Próbowałem tego z tym TTL
samym błędem i bez niego .
źródło
TTL
działało dla mnie,DependsOn
było niepotrzebne. dzięki!Poza TTL i DependsOn głównym założeniem jest upewnienie się, że system nie będzie próbował utworzyć zestawu rekordów przy użyciu nieistniejących odniesień.
Jako taki, DependsOn musi nie tylko istnieć, ale musi zawierać listę wszystkich zasobów, do których odwołuje się definicja RecordSetGroup (usługi równoważenia obciążenia, inne wpisy DNS, ENI itp.). Zapewni to, że formowanie w chmurze opóźnia tworzenie rekordów DNS do momentu spełnienia wymagań wstępnych.
źródło
Mam podobny problem, właśnie ustawiłem
TTL
właściwość i działa dobrze, wydaje się, żeTTL
właściwość jest niezbędna dla takich zestawów rekordów.Nie używam,
DependsOn
ponieważ zestaw rekordów zależy"ResourceRecords" : [ { "Fn::GetAtt" : [ "ApplicationRds" , "Endpoint.Address" ] } ],
od zasobu „ApplicationRds”, więc nie widzę żadnego zysku do użyciaDependsOn
źródło
Jeżeli ten sam błąd się dzieje podczas tworzenia rekordy zrobienia posiada
TTL
zestaw, sprawdzić, czy nie są oneALIAS
-Type rekordy, gdyż musi nie mieć TLL (jak to jest kopiowany zAliasTarget
).źródło