首页 > 解决方案 > Route53,AWS-CLI:使用 aws-cli 添加别名

问题描述

我有一个要求,Kubernetes 服务正在为我们生成一个带有 DNS 名称的 ELB。我将其添加为 A 的别名,与 CNAME 相比,它提供了更快的 DNS 传播。我想通过 shell 脚本自动添加条目,但它不起作用,我收到如下所述的错误。请注意,所有电子

错误日志:

An error occurred (InvalidChangeBatch) when calling the ChangeResourceRecordSets operation: [Tried to create an alias that targets dualstack.AXXXXXXXXX-46346364.eu-central-1.elb.amazonaws.com., type A in zone Z0jshgdjhdg, but the alias target name does not lie within the target zone, Tried to create an alias that targets dualstack.asdgdfhgdfh-56767687.eu-central-1.elb.amazonaws.com., type A in zone Z0XXXXX, but that target was not found]

使用的命令:

aws route53 change-resource-record-sets --hosted-zone-id /hostedzone/Z0XXXXXXX --change-batch '{"Changes": [ { "Action": "UPSERT", "ResourceRecordSet": { "Name": "test.dev.domain.com", "Type": "A", "AliasTarget":{ "HostedZoneId": "Z0XXXXX","DNSName": "aesdgdfg-46456.eu-central-1.elb.amazonaws.com","EvaluateTargetHealth": false} } } ]}'

我究竟做错了什么?

托管区域按要求:

在此处输入图像描述

标签: amazon-web-services

解决方案


根据评论。

该问题是由于HostedZoneIdAliasTarget. 正确的是HostedZoneId与您的 ALB 相关联。它可以在 EC2 控制台Description的 ALB选项卡中的Hosted zone选项下找到。

该命令应使用两个 HostedZoneId:

aws route53 change-resource-record-sets \
    --hosted-zone-id /hostedzone/<zone-id-from-route53>\
    --change-batch \
     '{"Changes": [ { "Action": "UPSERT", "ResourceRecordSet": { "Name": "test.dev.domain.com", "Type": "A", "AliasTarget":{ "HostedZoneId": "<zone-id-of-ALB>","DNSName": "aesdgdfg-46456.eu-central-1.elb.amazonaws.com","EvaluateTargetHealth": false} } } ]}'


推荐阅读