AWS::Route53::RecordSetGroup AliasTarget - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::Route53::RecordSetGroup AliasTarget

仅限别名记录:有关您要将流量路由到的 AWS 资源(例如 CloudFront 分配或 Amazon S3 存储桶)的信息。

为私有托管区域创建记录时,请注意以下几点:

  • 虽然允许在私有托管区域中创建地理位置别名和延迟别名,但不支持这样做。

  • 有关在私有托管区域中创建故障转移记录的信息,请参阅在私有托管区域中配置故障转移

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "DNSName" : String, "EvaluateTargetHealth" : Boolean, "HostedZoneId" : String }

YAML

DNSName: String EvaluateTargetHealth: Boolean HostedZoneId: String

属性

DNSName

仅限别名记录:您指定的值取决于要将查询路由到的位置:

Amazon API Gateway 自定义区域 API 和边缘优化 API

为您的 API 指定适用的域名。您可以使用 AWS CLI 命令 get-domain-names 获取适用值:

  • 对于区域 API,请指定值 regionalDomainName

  • 对于边缘优化 API,请指定值 distributionDomainName。这是关联 CloudFront 分配的名称,例如 da1b2c3d4e5.cloudfront.net

注意

您正在创建的记录的名称必须与 API 的自定义域名匹配,例如 api.example.com

Amazon Virtual Private Cloud 接口 VPC 终端节点

输入接口终端节点的 API 终端节点,例如 vpce-123456789abcdef01-example-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com。对于边缘优化 API,这是对应 CloudFront 分配的域名。您可以使用 AWS CLI 命令 describe-vpc-endpoints 获取 DnsName 的值。

CloudFront 分配

指定您创建分配时 CloudFront 指定的域名。

您的 CloudFront 分配必须包含与记录名称匹配的备用域名。例如,如果记录的名称是 acme.example.com,您的 CloudFront 分配必须包含 acme.example.com,以作为备用域名之一。有关更多信息,请参阅 Amazon CloudFront 开发人员指南 中的使用备用域名 (CNAME)

您不能在私有托管区域中创建记录来将流量路由到 CloudFront 分配。

注意

对于故障转移别名记录,您无法同时为主要和辅助记录指定 CloudFront 分配。一个分配必须包含一个与该记录的名称匹配的备用域名。但是,主要和辅助记录具有相同的名称,而您无法在多个分配中包括相同的备用域名。

Elastic Beanstalk 环境

如果 Elastic Beanstalk 环境的域名包括您在其中部署环境的区域,则您可以创建一个将流量路由到该环境的别名记录。例如,域名 my-environment.us-west-2.elasticbeanstalk.com 是区域化域名。

重要

对于在 2016 年年初之前创建的环境,域名不包括该区域。要将流量路由到这些环境,您必须创建 CNAME 记录,而不是别名记录。请注意,不能为根域名创建 CNAME 记录。例如,如果您的域名为 example.com,则可创建一个能将 acme.example.com 的流量路由到 Elastic Beanstalk 环境的记录,但不能创建可将 example.com 的流量路由到 Elastic Beanstalk 环境的记录。

对于具有区域化子域的 Elastic Beanstalk 环境,请为环境指定 CNAME 属性。您可以使用以下方法来获取 CNAME 属性的值:

  • AWS 管理控制台:有关如何使用控制台获取值的信息,请参阅 AWS Elastic Beanstalk 开发人员指南 中的将自定义域与 AWS Elastic Beanstalk 配合使用

  • Elastic Beanstalk API:使用 DescribeEnvironments 操作来获取 CNAME 属性的值。有关更多信息,请参阅 AWS Elastic Beanstalk API 参考 中的 DescribeEnvironments

  • AWS CLI:使用 describe-environments 命令来获取 CNAME 属性的值。有关更多信息,请参阅 AWS 命令行界面参考 中的 describe-environments

ELB 负载均衡器

指定与负载均衡器关联的 DNS 名称。使用 AWS 管理控制台、ELB API 或 AWS CLI 获取 DNS 名称。

  • AWS 管理控制台:转到 EC2 页面,在导航窗格中选择负载均衡器,选择相应的负载均衡器,选择描述选项卡,然后获取 DNS 名称字段的值。

    如果您要将流量路由到 Classic 负载均衡器,请获取以 dualstack 开头的值。如果您要将流量路由到其他类型的负载均衡器,请获取适用于记录类型(A 或 AAAA)的值。

  • Elastic Load Balancing API:使用 DescribeLoadBalancers 获取 DNSName 的值。有关更多信息,请参阅相关指南:

  • CloudFormation Fn::GetAtt 内部函数:使用 Fn::GetAtt 内部函数获取 DNSName 的值:

  • AWS CLI:使用 describe-load-balancers 获取 DNSName 的值。有关更多信息,请参阅相关指南:

AWS Global Accelerator 加速器

指定加速器的 DNS 名称:

配置作为静态网站的 Amazon S3 存储桶。

指定您在其中创建存储桶的 Amazon S3 网站终端节点的域名,例如,s3-website.us-east-2.amazonaws.com。有关有效值的更多信息,请参阅 Amazon Web Services 一般参考 中的 Amazon S3 网站终端节点表。有关为网站使用 S3 存储桶的更多信息,请参阅 Amazon Route 53 开发人员指南 中的 Amazon Route 53 入门

其他 Route 53 记录

为当前托管区域中的记录指定 Name 元素的值。

注意

如果您要创建与托管区域(称为顶级域名)同名的别名记录,则无法为 Type 值为 CNAME 的记录指定域名。这是因为,别名记录必须与您要将流量路由到的目标记录具有相同的类型,而为顶级域名创建 CNAME 记录的做法不受支持,即使对于别名记录也是如此。

必需:是

类型:字符串

最高1024

Update requires: No interruption

EvaluateTargetHealth

仅适用于具有任意路由策略的别名记录:EvaluateTargetHealthtrue 时,别名记录继承所引用 AWS 资源(例如托管区域中的 ELB 负载均衡器或其他记录)的运行状况。

请注意以下几点:

CloudFront 分配

当别名目标是 CloudFront 时,您不能将 EvaluateTargetHealth 设置为 true

具有区域化子域的 Elastic Beanstalk 环境

如果您在 DNSName 中指定 Elastic Beanstalk 环境,并且该环境包含 ELB 负载均衡器,则 Elastic Load Balancing 仅将查询路由到向负载均衡器注册的正常运行的 Amazon EC2 实例。(如果一个环境包含多个 Amazon EC2 实例,则它会自动包含一个 ELB 负载均衡器。) 如果您将 EvaluateTargetHealth 设置为 true,并且没有正常运行的 Amazon EC2 实例或负载均衡器本身运行状况不佳,则 Route 53 会将查询路由到其他正常运行的可用资源(如果有)。

如果该环境包含单个 Amazon EC2 实例,则没有特殊要求。

ELB 负载均衡器

运行状况检查行为取决于负载均衡器的类型:

  • Classic 负载均衡器:如果您在 DNSName 中指定 ELB Classic 负载均衡器,则 Elastic Load Balancing 仅将查询路由到向负载均衡器注册的正常运行的 Amazon EC2 实例。如果您将 EvaluateTargetHealth 设置为 true,并且没有正常运行的 EC2 实例或负载均衡器本身运行状况不佳,则 Route 53 会将查询路由到其他资源。

  • 应用程序负载均衡器和网络负载均衡器:如果您指定 ELB 应用程序或网络负载均衡器,并且将 EvaluateTargetHealth 设置为 true,则 Route 53 会根据与负载均衡器关联的目标组的运行状况将查询路由到负载均衡器:

    • 为使应用程序或网络负载均衡器被认为是正常运行的,包含目标的每个目标组都必须至少包含一个正常运行的目标。如果任何目标组只包含运行状况不佳的目标,则负载均衡器被认为是不正常的,并且 Route 53 会将查询路由到其他资源。

    • 没有注册目标的目标组被认为是运行状况不佳。

注意

当您创建负载均衡器时,您需配置 Elastic Load Balancing 运行状况检查设置;这并不是 Route 53 运行状况检查,但是会执行类似的功能。请勿为您向 ELB 负载均衡器注册的 EC2 实例创建 Route 53 运行状况检查。

S3 存储桶

当别名目标是 S3 存储桶时,将 EvaluateTargetHealth 设置为 true 没有特殊要求。

同一托管区域中的其他记录

如果您在 DNSName 中指定的 AWS 资源是一个记录或一组记录(例如,一组加权记录),而不是另一个别名记录,则建议您将运行状况检查与别名目标中的所有记录关联起来。有关更多信息,请参阅 Amazon Route 53 开发人员指南中的忽略运行状况检查时,会出现什么情况?

有关更多信息和示例,请参阅 Amazon Route 53 开发人员指南中的 Amazon Route 53 运行状况检查和 DNS 故障转移

必需:否

类型:布尔值

Update requires: No interruption

HostedZoneId

仅限别名资源记录集:使用的值取决于要将流量路由到的位置:

Amazon API Gateway 自定义区域 API 和边缘优化 API

为您的 API 指定托管区域 ID。您可以使用 AWS CLI 命令 get-domain-names 获取适用值:

  • 对于区域 API,请指定值 regionalHostedZoneId

  • 对于边缘优化 API,请指定值 distributionHostedZoneId

Amazon Virtual Private Cloud 接口 VPC 终端节点

为您的接口终端节点指定托管区域 ID。您可以使用 AWS CLI 命令 describe-vpc-endpoints 获取 HostedZoneId 的值。

CloudFront 分配

指定 Z2FDTNDATAQYW2。在创建将流量路由到 CloudFront 分配的别名记录时,它始终是托管区域 ID。

注意

无法在私有区域中创建 CloudFront 的别名记录。

Elastic Beanstalk 环境

指定您在其中创建环境的区域的托管区域 ID。该环境必须具有区域化的子域。有关区域以及对应的托管区域 ID 列表,请参阅 Amazon Web Services 一般参考 中“AWS 区域和终端节点”一章中的 AWS Elastic Beanstalk

ELB 负载均衡器

指定负载均衡器的托管区域 ID 的值。使用以下方法获取托管区域 ID:

  • Amazon Web Services 一般参考 中“Elastic Load Balancing 终端节点和配额”主题中的服务终端节点表:使用与您在其中创建负载均衡器的区域对应的值。请注意,应用程序负载均衡器和 Classic 负载均衡器以及网络负载均衡器都具有单独的列。

  • AWS 管理控制台:转到 Amazon EC2 页面,在导航窗格中选择负载均衡器,选择相应的负载均衡器,然后获取描述选项卡上托管区域字段的值。

  • Elastic Load Balancing API:使用 DescribeLoadBalancers 获取适用的值。有关更多信息,请参阅相关指南:

    • Classic 负载均衡器:使用 DescribeLoadBalancers 获取 CanonicalHostedZoneNameId 的值。

    • 应用程序负载均衡器和网络负载均衡器:使用 DescribeLoadBalancers 获取 CanonicalHostedZoneId 的值。

  • CloudFormation Fn::GetAtt 内部函数:使用 Fn::GetAtt 内部函数获取适用的值:

  • AWS CLI:使用 describe-load-balancers 获取适用的值。有关更多信息,请参阅相关指南:

AWS Global Accelerator 加速器

指定 Z2BJ6XQ5FK7U4H

配置作为静态网站的 Amazon S3 存储桶

指定您在其中创建存储桶的区域的托管区域 ID。有关有效值的更多信息,请参阅 Amazon Web Services 一般参考 中的 Amazon S3 网站终端节点表。

托管区域中的其他 Route 53 记录

指定您的托管区域的托管区域 ID。(别名记录无法引用其他托管区域中的记录。)

必需:是

类型:字符串

最高32

Update requires: No interruption

另请参阅