在 Cloudformation 上使用加入、Select 和私有 IP 值拆分

Using Join, Select, and Split with Private IP value on Cloudformation

我在尝试在 Cloudformation 中编写反向区域条目 dns 时遇到错误。

这是我的条目:

EC2DNSReverseZone:
Type: AWS::Route53::RecordSet
Properties:
  HostedZoneId: !Ref ReverseHostedZoneId
  Name:
    - !Join [ '', [ !Select [3, !Split [ ".", !GetAtt LinuxEC2Instance.PrivateIp ] ], .xxx.xxx.xx.in-addr.arpa  ] ]
  Type: PTR
  TTL: '86400'
  ResourceRecords:
    - xxxxxxxx

部署 Cloudformation 条目时,我收到以下错误:

Value of property Name must be of type String

我认为这与 LinuxEC2Instance.PrivateIp 是一个数字并且拆分数字无效这一事实有关。但这只是一个猜测。我有点不知所措,我在这里做错了什么。 LinuxEC2Instance.PrivateIp 是一个像 10.104.209.113 这样的 IP 地址,我只需要最后一部分,所以我需要那个数字中的 113,这就是我在这里使用 split 的原因。

我需要做什么来修复这个错误?

I assume that this has to do with the fact that LinuxEC2Instance.PrivateIp is a number and it is not valid to Split a number.

不,不是。这意味着您的 NameList,因为您将 - 放入其中。它必须是普通的String,所以它应该是(没有-):

  Name:
    !Join [ '', [ !Select [0, !Split [ ".", !GetAtt LinuxEC2Instance.PrivateIp ] ], .xxx.xxx.xx.in-addr.arpa  ] ]

Join可能还有其他错误,但我只关注你当前的错误信息。