AWS CloudFormation mengembalikan "Permintaan tidak valid" ketika mencoba membuat AWS :: Route53 :: RecordSet

13

Saya bingung yang satu ini.

99% dari waktu CloudFormation cukup baik memberi Anda beberapa jenis pesan debug yang dapat Anda kerjakan, tetapi "Permintaan tidak valid" telah membuat saya bingung, terutama ketika sumber dayanya cukup sederhana untuk memulai.

Ini dikatakan sumber daya yang memberi saya masalah (templat yang dihasilkan oleh Ansible, karenanya {{...}} notasi),

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

Dari apa yang saya tahu dari dokumen, semua yang diperlukan ada, benar, dan dalam format yang tepat.

Satu-satunya hal yang dapat saya pikirkan adalah saya menambahkan sumber daya ini ke tumpukan CloudFormation yang sudah saya buat sebelumnya yang sudah menciptakan Databasesumber daya, yang untuk catatan adalah AWS::RDS::DBInstance(senang memposting template sumber daya untuk itu juga jika diperlukan, tidak ada yang istimewa) .

Adakah ide mengapa saya mendapatkan "Permintaan tidak valid"?

Terima kasih.

Sunting: Saya mencoba ini dengan dan tanpa TTLkesalahan yang sama.

Stephen Melrose
sumber

Jawaban:

18

Ternyata saya tidak mencoba TTL dan DependsOn .

Bekerja dengan keduanya.

Stephen Melrose
sumber
3
menambahkan TTLbekerja untuk saya, DependsOntidak perlu. Terima kasih!
tmont
1

Di luar TTL dan DependsOn, ide utamanya adalah untuk memastikan bahwa sistem tidak berusaha untuk membuat recordset menggunakan referensi yang tidak ada.

Dengan demikian, DependsOn tidak hanya harus ada, tetapi harus mencantumkan semua sumber daya yang direferensikan dalam definisi RecordSetGroup (Load Balancers, entri DNS lainnya, ENI, dll). Ini akan memastikan bahwa cloudformation menunda pembuatan catatan DNS sampai prasyarat terpenuhi.

Donny Nyamweya
sumber
0

Saya memiliki masalah yang sama, saya baru saja mengatur TTLproperti dan berfungsi dengan baik, sepertinya TTLproperti adalah suatu keharusan untuk set rekaman tersebut.

Saya tidak menggunakan DependsOnkarena set rekaman tergantung pada "ResourceRecords" : [ { "Fn::GetAtt" : [ "ApplicationRds" , "Endpoint.Address" ] } ],sumber daya "ApplicationRds", jadi saya tidak melihat adanya keuntungan untuk digunakanDependsOn

Eslam
sumber
0

Jika kesalahan yang sama terjadi ketika membuat catatan yang melakukan memiliki TTLset, memeriksa apakah mereka tidak ALIAScatatan -jenis, karena mereka harus tidak memiliki TLL (seperti yang disalin dari AliasTarget).

danielkza
sumber