我是亚马逊服务及其API的新手。
使用Amazon route53Clinet类,我知道有一个getHostedZone方法可以根据ID获取Hosted Zone信息。但我有一个案例,我有域名,我需要获取托管区域ID可能是基于提供的域名?我怎样才能做到这一点?
答案 0 :(得分:0)
我知道这可能已经过时了但我在最初通过执行以下操作创建DNS区域时能够使用Powershell获取ID:
$route53Script = aws route53 create-hosted-zone --delegation-set-id /delegationset/DELIGATIONID --name domain.com --caller-reference blablabla | ConvertFrom-Json
$Route53ID = $route53Script.HostedZone.Id.replace("/hostedzone/","")
这为我提供了区域ID,然后我可以将其用作变量来执行此操作:
aws route53 change-resource-record-sets --hosted-zone-id $Route53ID --change-batch file://C:\default.json
我不知道它是否是最好的方式,但它确实有效!我相信你可以在PHP中做同样的事情。已经有一段时间了,因为我已经用PHP编写了一些更大的脚本。
答案 1 :(得分:0)
我使用AWS CLI并将JSON结果通过管道传递到jq
工具:
aws route53 list-hosted-zones-by-name |
jq --arg name "example.com." \
-r '.HostedZones | .[] | select(.Name=="\($name)") | .Id'
jq
表达式选择每个包含名称“ example.com”的托管区域JSON项目。请注意,这可能会返回多个记录。
输出是匹配的托管区域ID字符串,例如:
/hostedzone/ABCDEF12345678
然后您可以列出托管区域ID的资源记录集:
aws route53 list-resource-record-sets \
--hosted-zone-id "/hostedzone/ABCDEF12345678"
答案 2 :(得分:0)
这将为您提供带有托管区域ID的列表。
aws route53列表托管区域| jq'.HostedZones | 。[] | .Id'