如何在 cloudformation 脚本的输出部分引用记录集名称?

chr*_*ris 5 amazon-web-services aws-cloudformation amazon-route53

我正在我的 cloudformation 中创建一些 DNS 条目。有一个参数传递到 cfn 脚本中,这会导致创建一个 Route53 条目,例如 hostname-test.example.com:

"Host" : {
  "Type" : "AWS::Route53::RecordSetGroup",
  "Properties" : {
      "HostedZoneName" : "example.com.",
      "RecordSets" : [
        {
          "Name" : { 
            "Fn::Join" : [ "-", [
                {"Ref" : "Hostname" },
                "test.example.com"
            ]]
          },
          "Type" : "A",
          "AliasTarget" : {
            "DNSName" : { "Fn::GetAtt" : [ "PublicWebLoadBalancer", "CanonicalHostedZoneName" ] },
            "HostedZoneId" : { "Fn::GetAtt" : [ "PublicWebLoadBalancer", "CanonicalHostedZoneNameID" ] }
          }
        }
      ]
  }
}
Run Code Online (Sandbox Code Playgroud)

在我的输出中,我想从 RecordSet 获取 Name 属性,但我不知道如何引用它。根据Fn::GetAtt 文档,不支持 Route53 对象。

这可能吗?

bsv*_*gen 2

不要将 RecordSet 嵌入到 RecordSetGroup 中,而是将其定义为单独的属性,并具有与 RecordSetGroup 相同的 HostedZoneName。

然后,您可以使用“Ref”来获取 Name 属性的值。

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset.html