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 .

Stephen Melrose
źródło

Odpowiedzi:

18

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

Działa z oboma tymi urządzeniami.

Stephen Melrose
źródło
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.

Donny Nyamweya
źródło
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

Eslam
źródło
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).

danielkza
źródło