amazon-web-services - 有没有办法从 CFT 中的 DNS 名称获取 HostedZoneId?

标签 amazon-web-services yaml aws-cloudformation amazon-route53

在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/

相关文章:

javascript - 如何将值从无服务器 yml 文件传递​​到 js 文件?

amazon-web-services - 使用 cloudformation 创建 AWS IAM 策略

amazon-web-services - 如何通过 CloudFormation 设置 AWS 对等连接 DNS 解析选项?

hadoop - 在 Amazon EMR 上使用 Hadoop 流处理整个文件

amazon-web-services - AWS API Gateway 返回带有 x-amzn-ErrorType :AccessDeniedException header 的 403

ruby - 使用 ruby​​ 从 yml 文件中提取数据

typescript - 如何将构造添加到现有堆栈

amazon-web-services - 使用 AWS ACM 证书配置 Gloo 虚拟服务 SSL

node.js - 在AWS Lambda中使用JavaScript eval()

c# - 使用 C#,是否可以在不定义大量类型的情况下查询 YAML?