AWS CloudFormation zwraca „Niepoprawne żądanie” podczas próby utworzenia AWS :: Route53 :: RecordSet


13

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ł Databasezasó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 TTLsamym błędem i bez niego .

Odpowiedzi:


18

Okazuje się, że nie próbowałem TTL a DependsOn .

Działa z oboma tymi urządzeniami.


3
dodawanie TTLdziałało dla mnie, DependsOnbyło niepotrzebne. dzięki!
tmont

1

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.


0

Mam podobny problem, właśnie ustawiłem TTLwłaściwość i działa dobrze, wydaje się, że TTLwłaściwość jest niezbędna dla takich zestawów rekordów.

Nie używam, DependsOnponieważ zestaw rekordów zależy "ResourceRecords" : [ { "Fn::GetAtt" : [ "ApplicationRds" , "Endpoint.Address" ] } ],od zasobu „ApplicationRds”, więc nie widzę żadnego zysku do użyciaDependsOn


0

Jeżeli ten sam błąd się dzieje podczas tworzenia rekordy zrobienia posiada TTLzestaw, sprawdzić, czy nie są one ALIAS-Type rekordy, gdyż musi nie mieć TLL (jak to jest kopiowany z AliasTarget).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.