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ไม่จำเป็น ขอบคุณ!
tmont

1

นอกเหนือจาก TTL และ DependsOn แนวคิดหลักคือเพื่อให้แน่ใจว่าระบบจะไม่พยายามสร้างชุดระเบียนโดยใช้การอ้างอิงที่ไม่มีอยู่

ดังนั้น DependsOn จะต้องมีอยู่ไม่เพียง แต่จะต้องแสดงรายการทรัพยากรทั้งหมดที่อ้างถึงในการกำหนด RecordSetGroup (Load Balancer, รายการ DNS อื่น ๆ , ENIs และอื่น ๆ ) สิ่งนี้จะช่วยให้มั่นใจได้ว่าการเปลี่ยนแปลงโครงสร้างคลาวด์จะทำให้การสร้างระเบียน DNS ล่าช้าจนกว่าจะมีการปฏิบัติตามข้อกำหนดเบื้องต้น


0

ฉันมีปัญหาที่คล้ายกันฉันเพิ่งตั้งค่าTTLคุณสมบัติและทำงานได้ดีดูเหมือนว่าTTLคุณสมบัติเป็นสิ่งจำเป็นสำหรับชุดระเบียนดังกล่าว

ฉันไม่ได้ใช้DependsOnเนื่องจากชุดระเบียนขึ้นอยู่กับ"ResourceRecords" : [ { "Fn::GetAtt" : [ "ApplicationRds" , "Endpoint.Address" ] } ],ทรัพยากร "ApplicationRds" ดังนั้นฉันจึงไม่เห็นประโยชน์ที่จะใช้DependsOn


0

หากมีข้อผิดเดียวกันที่เกิดขึ้นเมื่อมีการสร้างระเบียนที่ทำมีTTLชุดตรวจสอบว่าพวกเขาจะไม่ALIASบันทึกชนิดเช่นที่พวกเขาจะต้องไม่ได้มี TLL (ตามที่มีการคัดลอกจากAliasTarget)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.