为什么AWS Cloudformation在尝试创建此RecordSetGroup时会说“无效请求”?

时间:2015-03-06 01:01:28

标签: amazon-web-services amazon-cloudformation

我有一个包含以下内容的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已成功创建。

2 个答案:

答案 0 :(得分:4)

答案 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。