gpt4 book ai didi

amazon-web-services - AWS Cloudformation 从托管区域 ID 获取托管区域名称

转载 作者:行者123 更新时间:2023-12-04 08:05:04 25 4
gpt4 key购买 nike

当采用AWS::Route53::HostedZone::Id类型的参数时,有没有办法获取HostedZone名称?

托管区域已存在,但不是使用 Cloudformation 创建的,因此我无法引用其他模板中的名称。

使用类型 AWS::Route53::HostedZone::Id 允许用户从下拉列表中进行选择,但选择的是 ID,而不是名称。

有没有办法从 ID 中获取名称,以便创建记录集?

这是我正在使用的模板,请注意记录集条目的名称,我们需要托管区域的名称来创建记录集。

AWSTemplateFormatVersion: '2010-09-09'
Description: Route53
Parameters:
HostedZone:
Type: AWS::Route53::HostedZone::Id
Description: The Hosted Zone for the Record Set
RecordSetName:
Type: String
Description: The name of the record set (all lowercase)

Resources:
Route53:
Type: AWS::Route53::RecordSet
Properties:
HostedZoneId: !Ref HostedZone
Comment: DNS name
Name: !Sub ${RecordSetName}.??????
Type: A
TTL: '60'
ResourceRecords:
- 10.1.1.1

最佳答案

鉴于您似乎试图解决的问题(为您的顶级域添加 A 记录),您实际上并不需要 AWS::Route53 类型的下拉参数选择器::HostedZone::Id。相反,您可以仅使用 String 输入并在 AWS::Route53::RecordSet 中使用 HostedZoneName 而不是 HostedZoneId > 如下图:

AWSTemplateFormatVersion: '2010-09-09'
Parameters:
DomainName:
Type: String
Description: apex domain name

Resources:
Route53:
Type: AWS::Route53::RecordSet
Properties:
HostedZoneName: !Sub '${DomainName}.'
Comment: DNS name
Name: !Ref DomainName
Type: A
TTL: '60'
ResourceRecords:
- 10.1.1.1

(注意,您需要在 HostedZoneNameDomainName 末尾添加额外的句点 . >).

如果您想要一个子域,您可以执行以下操作:

AWSTemplateFormatVersion: '2010-09-09'
Parameters:
DomainName:
Type: String
Description: apex domain name
DomainPrefix:
Type: String
Description: sub domain prefix

Resources:
Route53:
Type: AWS::Route53::RecordSet
Properties:
HostedZoneName: !Sub '${DomainName}.'
Comment: DNS name
Name: !Sub '${DomainPrefix}.${DomainName}'
Type: A
TTL: '60'
ResourceRecords:
- 10.1.1.2

引用 Fn::GetAtt,您将在为资源创建 cloudformation 导出时使用它们,而不是像本问题中那样使用资源时。

如果您希望创建包含顶级域名和托管区域 ID 的导出,您可以这样做,这是我更喜欢做的事情,以保持整洁。但是,导出是特定于区域的,因此,如果您跨多个区域进行部署(如果您使用 CloudFront 并希望将 API 部署到 us-east-1 以外的其他区域,则可能会被迫这样做),您将需要在某些区域伪造导出地区。

关于amazon-web-services - AWS Cloudformation 从托管区域 ID 获取托管区域名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57257106/

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