Amazon-Web-Services
AWS CloudFormation 在嘗試創建 AWS::Route53::RecordSet 時返回“無效請求”
我對此一無所知。
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
相同的錯誤。
原來我沒有嘗試
TTL
和DependsOn
。適用於這兩者。
除了 TTL 和 DependsOn,主要思想是確保系統不會嘗試使用不存在的引用創建記錄集。
因此,DependsOn 不僅必須存在,而且必須列出 RecordSetGroup 定義中引用的所有資源(負載均衡器、其他 DNS 條目、ENI 等)。這將確保 cloudformation 延遲 DNS 記錄的創建,直到滿足先決條件。