gpt4 book ai didi

amazon-web-services - 如何在 CloudFormation 中获取 Route53 的 VPC 终端节点 DNS 名称?

转载 作者:行者123 更新时间:2023-12-03 07:19:45 25 4
gpt4 key购买 nike

在 CloudFormation 模板中,我想创建一个 VPC 端点和指向它的 Route53 记录。

这是记录定义:

  Domain:
Type: AWS::Route53::RecordSet
Properties:
AliasTarget:
DNSName: ---- NEED THIS VALUE ----
HostedZoneId: !Ref HostedZoneId
HostedZoneId: !Ref HostedZoneId
Name: !Ref DomainName
Type: A

根据 docs ,VPC 端点有一个输出 DnsEntries ,它返回一个类似 ["Z1HUB23UULQXV:vpce-01abc23456de78f9g-12abccd3.ec2.us-east-1.vpce 的列表。 amazonaws.com"、"Z1HUB23UULQXV:vpce-01abc23456de78f9g-12abccd3-us-east-1a.ec2.us-east-1.vpce.amazonaws.com"、"Z1C12344VYDITB0:ec2.us-east-1.amazonaws.com"]

在该示例中,我需要 DNSName 值为 vpce-01abc23456de78f9g-12abccd3.ec2.us-east-1.vpce.amazonaws.com,即是列表中没有托管区域 ID 的第一项。

但我不知道如何在 CloudFormation 模板中获取它。

我正在尝试以下操作:!Select ['1', !Split [':', [!Select ['0', !GetAtt VPCEndpoint.DnsEntries]]]],但我出现以下错误:“[cfn-lint] E1018:拆分必须是字符串类型或资源/域/属性/AliasTarget/DNSName/Fn::Select/1/Fn::Split 的有效函数“

最佳答案

发现问题。

Split 的第二个参数是错误的。它必须是一个字符串,而不是一个列表。

这是正确的:

!Select ['1', !Split [':', !Select ['0', !GetAtt VPCEndpoint.DnsEntries]]]

请注意,,!Select 之间没有 [

关于amazon-web-services - 如何在 CloudFormation 中获取 Route53 的 VPC 终端节点 DNS 名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74347029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com