采用类型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
答案 0 :(得分:1)
鉴于您似乎要解决的问题(为您的顶点域添加A
记录)实际上并不需要类型为AWS::Route53::HostedZone::Id
的下拉参数选择器。相反,您可以只使用String
输入并使用HostedZoneName
代替HostedZoneId
中的AWS::Route53::RecordSet
,如下所示:
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
(请注意,您需要在.
的{{1}}末尾加上额外的句点DomainName
)。
如果您想要一个子域,则可以执行以下操作:
HostedZoneName
参考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
,您将在为资源创建cloudformation导出时使用它们,而不是在此问题中使用资源时使用。
如果愿意,您可以创建包含顶点域名和托管区域ID的导出文件,这是我为保持整洁而希望执行的操作。但是,导出是特定于区域的,因此,如果您跨多个区域进行部署(如果您正在使用CloudFront并希望将API部署到us-east-1以外的地方,则可能会强加于您),那么您将需要在某些情况下伪造出口地区。
答案 1 :(得分:0)
Fn :: GetAtt Fn :: GetAtt内在函数返回此类型的指定属性的值。以下是可用的属性和示例返回值。
有关使用Fn :: GetAtt内在函数的更多信息,请参见Fn :: GetAtt。
名称服务器 返回特定托管区域的名称服务器集。例如:ns1.example.com。
私有托管区域不支持此属性。
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html
答案 2 :(得分:0)
Hosted Zone ID
显示在Route 53控制台UI中,看起来像Z1AVC899B05E2Y