Amazon-Web-Services

AWS CloudFormation 在嘗試創建 AWS::Route53::RecordSet 時返回“無效請求”

  • April 23, 2018

我對此一無所知。

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 記錄的創建,直到滿足先決條件。

引用自:https://serverfault.com/questions/649004