AWS CloudFormation повертає "Недійсний запит" при спробі створення AWS :: Route53 :: RecordSet


13

Я на цьому втрачаю.

99% часу CloudFormation досить добре дає вам якесь повідомлення про налагодження, з яким ви можете працювати, але "Недійсний запит" залишив мене спотвореним, особливо коли ресурс починається досить просто.

Це сказаний ресурс, який задає мені проблеми (шаблон, згенерований Ansible, звідси {{...}} позначення),

"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"
}

З того, що я можу сказати з документів, все, що потрібно, має бути правильним та правильним форматом.

Єдине, про що я можу придумати, - це додавання цього ресурсу до наявного я раніше створеного стека CloudFormation, який вже створив Databaseресурс, який для запису є AWS::RDS::DBInstance(радий розмістити шаблон ресурсу і для цього, якщо потрібно, нічого особливого) .

Будь-які ідеї, чому я отримую "Недійсний запит"?

Спасибі.

Редагувати: я спробував це з такою TTLж помилкою і без неї .

Відповіді:


18

Виявляється, я не пробувала TTL і DependsOn .

Працює з обома цими.


3
додавання TTLпрацювало для мене, DependsOnбуло зайвим. Спасибі!
тмонт

1

Крім TTL та DependsOn, головна ідея - переконатися, що система не намагається створити набір записів за допомогою посилань, які не існують.

Таким чином, DependsOn повинен не тільки існувати, але він повинен перераховувати всі ресурси, на які посилається у визначенні RecordSetGroup (Load Balancers, інші записи DNS, ENI тощо). Це забезпечить, що хмарна інформація затримує створення записів DNS, поки не будуть виконані передумови.


0

У мене є аналогічне питання, я просто встановив TTLвластивість, і він працює добре, здається, TTLвласність є обов'язковою для таких наборів записів.

Я не використовую, DependsOnоскільки набір записів залежить "ResourceRecords" : [ { "Fn::GetAtt" : [ "ApplicationRds" , "Endpoint.Address" ] } ],від ресурсу "ApplicationRds", тому я не бачу жодної вигоди для використанняDependsOn


0

Якщо така ж помилка трапляється під час створення записів, у яких є TTLнабір, перевірте, чи вони не є ALIASтипом записів, оскільки вони не повинні мати TLL (як це скопійовано з AliasTarget).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.