【问题标题】:AWS CLI command to get the Route 53 record set of an ELB用于获取 ELB 的 Route 53 记录集的 AWS CLI 命令
【发布时间】:2024-01-22 16:40:02
【问题描述】:
我有一个 ELB (abeXXXXXXXXXXX-12345XX.us-east-2.elb.amazonaws.com) 附加到 route53 (test.kubernates.com) 中的记录集。将记录集附加到 elb 的 aws cli 命令将是什么?我想在控制台上打印 test.kubernates.com。
我尝试将 elb 端点传递给 list-resource-record-sets,但没有将 test.kubernates.com 作为输出。
【问题讨论】:
标签:
amazon-web-services
aws-cli
【解决方案1】:
假设您已将 route53 记录设置为 ELB 的别名目标,这应该可以:
aws route53 list-resource-record-sets --hosted-zone-id <relevant_zone_id> --query "ResourceRecordSets[?AliasTarget.DNSName == 'abeXXXXXXXXXXX-12345XX.us-east-2.elb.amazonaws.com.']"
只需将托管区域 ID 替换为您要查询的域,以及相关的 elb 域名。
注意:此处的 ELB 域名必须包含尾随句点(注意它在查询参数中以“amazonaws.com.”结尾)
【解决方案2】:
如果您使用的是 CNAME,您可以这样做:
aws route53 list-resource-record-sets --output text --hosted-zone-id ZXXXXXXXXXX --query "ResourceRecordSets[?ResourceRecords[?Value == 'abeXXXXXXXXXXX-12345XX.us-east-2.elb.amazonaws.com']].Name"
【解决方案3】:
您必须添加--query 选项才能获取记录集。
并避免打印最后一个'。字符添加| sed 's/.$//'
aws route53 list-resource-record-sets --hosted-zone-id <ZONE_ID>
--query "ResourceRecordSets[?ResourceRecords[?Value == 'abeXXXXXXXXXXX-12345XX.us-east-2.elb.amazonaws.com']].Name" --output text | sed 's/.$//'