如何使用 AWS 命令行界面 (AWS CLI) 在 Amazon Route 53 中创建别名资源记录集?

您可在 Route 53 中使用别名记录指向 AWS 资源或 Amazon S3 存储桶。您可以通过 Route 53 控制台创建别名记录,也可通过 AWS CLI 创建。

注意:在继续之前,请确保您已安装或升级到 AWS CLI 的最新版本

创建别名资源记录集之前,请创建托管区域以包含将流量路由到您的域的记录。托管区域与您的域必须具有相同名称。根据使用案例,您可以创建公有托管区域以路由 Internet 流量,或者创建私有托管区域以路由 Amazon Virtual Private Cloud (Amazon VPC) 中的流量。

创建别名资源记录集

修改以下示例 JSON 语法以创建您自己的别名资源记录集,然后为别名记录指定您自己的值。保存文件(例如,sample.json)。

警告:确保您在配置中使用了 AWS 资源的托管区域 ID,而不是域名。在 JSON 文件中,此值在键/值对 HostedZoneId 中指定。在继续之前,请找到各个区域的 Elastic Load BalancingHostedZoneId​AWS Elastic BeanstalkAmazon Simple Storage Service (Amazon S3)Amazon CloudFront 终端节点。

此示例为域 (elb.example.com) 创建别名资源记录集,以指向 Elastic Load Balancer 终端节点 (ALB-xxxxxxxx.us-west-2.elb.amazonaws.com)。请求正文中包括变更项的列表,称为变更批处理。变更项使用 ChangeResourceRecordSetsRequest 元素来包括。

{
     "Comment": "Creating Alias resource record sets in Route 53",
     "Changes": [{
                "Action": "CREATE",
                "ResourceRecordSet": {
                            "Name": "elb.example.com",
                            "Type": "A",
                            "AliasTarget":{
                                    "HostedZoneId": "Z1H1FL5HABSF5",
                                    "DNSName": "ALB-xxxxxxxx.us-west-2.elb.amazonaws.com",
                                    "EvaluateTargetHealth": false
                              }}
                          }]
}

接下来,使用 change-resource-record-sets 命令在托管区域中创建资源记录集。在您之前创建的 JSON 配置文件中指定用于创建记录的值。

为您的配置修改以下命令。对于 --hosted-zone-id,提供域名的托管区域 ID:

$ aws route53 change-resource-record-sets --hosted-zone-id ZXXXXXXXXXX --change-batch file://sample.json

Elastic Load Balancing 设置

如果您指向 Elastic Load Balancer,请始终在 JSON 文件的 DNSName 键/值对中包括 dualstack。例如,如果您负载均衡器的 Amazon 提供的 DNS 名称为 ALB-xxxxxxxx.us-west-2.elb.amazonaws.com,请使用:

"DNSName": "dualstack.ALB-xxxxxxxx.us-west-2.elb.amazonaws.com"

CloudFront 分配设置

如果您指向 CloudFront 分配,请在 JSON 文件的 DNSName 键/值对中指定 Amazon 提供的 CloudFront 分配域名。例如,如果您的 CloudFront 分配 Amazon 提供的域名为 d111111abcdef8.cloudfront.net,请使用:

"DNSName": "d111111abcdef8.cloudfront.net"

警告:您必须包括备用域名以用于替代 CloudFront 分配的域名。备用域名必须与您创建别名资源记录集的域匹配。例如,如果您希望使用域 example.com 访问 CloudFront 分配,请将域名添加到分配的备用域名

Amazon S3 存储桶设置

如果您指向 Amazon S3 存储桶,您必须在 JSON 文件中为 DNSName 键值/对指定存储桶网站终端节点的域名。请勿为该值使用来自 S3 管理控制台的静态网站托管中显示的 S3 终端节点。在资源记录集中创建的域名必须与 Amazon S3 存储桶的名称匹配。

您还必须指定托管存储桶的区域(例如,us-east-1)。

s3-website-us-east-1.amazonaws.com

以下为用于指向 S3 存储桶的示例 JSON 语法:

{
                "Comment": "Alias record for S3 bucket",
     "Changes": [{
                "Action": "CREATE",
                "ResourceRecordSet": {
                                "Name": "new.example.com",
                                           "Type": "A",
                                "AliasTarget":{
                                                    "HostedZoneId": "Z3BJ6K6RIION7M",
                                          "DNSName": "s3-website-us-west-2.amazonaws.com",
                                               "EvaluateTargetHealth": false
                                         }}
                                  }]
}

注意:除了创建指向 AWS 资源(例如,CloudFront 分配、Elastic Beanstalk 环境、ELB 负载均衡器、Amazon S3 存储桶)的别名记录之外,您还必须创建别名资源记录,指向您在其中创建别名记录的同一个托管区域中的其他记录集。别名记录必须与您要路由到的记录具有相同的类型。


此页面对您有帮助吗? |

返回 AWS Support 知识中心

需要帮助?访问 AWS 支持中心

发布时间:2018 年 08 月 09 日