尝试创buildAWS :: Route53 :: RecordSet时,AWS CloudFormation返回“无效请求”

我在这一个亏本。

99%的时间CloudFormation非常擅长给你一些你可以使用的debugging信息,但是“无效请求”让我难以忍受,特别是当资源非常简单时。

这是说给我的问题(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" } 

从文档中我可以看出,所需的一切都是正确的,格式正确的。

我能想到的唯一的事情就是我这个资源添加到我之前创build的已经创build了Database资源的现有 CloudFormation堆栈中,该资源对于logging是AWS::RDS::DBInstance (很高兴发布资源模板如果需要,也没有什么特别的)。

任何想法,为什么我得到“无效的请求”?

谢谢。

编辑:我试过这个和没有TTL ,同样的错误。

原来我没有尝试TTL DependsOn

适用于这两者。

除了TTL和DependsOn,主要想法是确保系统不会尝试使用不存在的引用创buildlogging集。

因此,DependsOn不仅必须存在,而且必须列出RecordSetGroup定义(负载平衡器,其他DNS条目,ENI等)中引用的所有资源。 这将确保云信息延迟创buildDNSlogging,直到满足先决条件。

我有类似的问题,我刚刚设置了TTL属性,它工作正常,似乎TTL属性是这样的logging集必须。

我不使用DependsOn作为logging集取决于"ResourceRecords" : [ { "Fn::GetAtt" : [ "ApplicationRds" , "Endpoint.Address" ] } ],从“ApplicationRds”资源,看到使用DependsOn任何收益