我有一个包含以下内容的AWS CloudFormation文件:
"myELB" : {
"Type": "AWS::ElasticLoadBalancing::LoadBalancer",
Blah Blah Blah
},
"DatabaseDNSRecord" : {
"Type" : "AWS::Route53::RecordSetGroup",
"DependsOn": ["myELB"],
"Properties" : {
"HostedZoneId" : "Z19Y4P1DDQJADI", # obfuscated obviously.
"RecordSets" : [
{
"Name" : "mydns.privatehostedzone.",
"Type" : "CNAME",
"ResourceRecords" : [
{"Fn::GetAtt" : ["myELB","DNSName"]}
]
}
]
}
},
当我运行它时,我得到以下神秘错误:
Error Message: 18:59:16 UTC-0500 CREATE_FAILED AWS::Route53::RecordSetGroup DatabaseDNSRecord Invalid request
有人可以提出问题所在吗?我不知道自己做错了什么。 myELB
已成功创建。
答案 0 :(得分:4)
我在这里找到了答案。需要TTL。即使docs错误地指出它不是。
答案 1 :(得分:1)
对于任何绊倒此问题并尝试使用AliasTarget创建RecordSet的人。提供TTL实际上会导致相同的“无效请求”失败。 e.g。
ApplicationDNS:
Type: AWS::Route53::RecordSet
Properties:
HostedZoneId: <some-zone-id>
Comment: DNS Entry for the Application Load balancer
Name: !Join ['', [!Ref 'AWS::StackName', '.domain.com.']]
Type: A
TTL: 60
AliasTarget:
EvaluateTargetHealth: false
HostedZoneId: !GetAtt AppLoadBalancer.CanonicalHostedZoneID
DNSName: !GetAtt AppLoadBalancer.DNSName
DependsOn:
- AppLoadBalancer
在这种情况下,提供TTL实际打破堆栈(http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html#cfn-route53-recordset-ttl)似乎在目标端指定了TTL。