在CloudFormation模板中,我们可以从DNS名称中获取HostedZoneId吗?一种方法是我们检查资源并查找 HostedZoneId 并将其插入。我们还可以使用 GetAtt 或任何其他函数来获取 id。
我想在 HostedZoneId 上执行类似的操作,但这是不正确的。还有其他方法可以做到这一点吗?
Parameter:
VPCEDNS:
Description: VPCe DNS target
Type: String
Resources:
PrimaryRecord:
Type: AWS::Route53::RecordSet
Properties:
AliasTarget:
HostedZoneId: !GetAtt (!Ref "VPCEDNS").HostedZoneId
DNSName: !Ref "VPCEDNS"
EvaluateTargetHealth: true
Failover: PRIMARY
HostedZoneName: example.com
Name: service.example.com
Type: A
最佳答案
遗憾的是,在普通 CFN 中没有这样的方法。如果您确实需要这样的功能,则必须使用 custom resource .
该资源采用 lambda 函数的形式,它将您的 DNS 名称作为输入参数。然后使用AWS SDK(例如boto3),它会找到并匹配相应的托管区域,并将其ID返回到您的CFN堆栈中以供进一步使用。
关于amazon-web-services - 有没有办法从 CFT 中的 DNS 名称获取 HostedZoneId?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66470106/