如何获取AWS Route53托管区域ID?

时间:2016-04-11 08:54:02

标签: php amazon-web-services amazon-route53

我是亚马逊服务及其API的新手。

使用Amazon route53Clinet类,我知道有一个getHostedZone方法可以根据ID获取Hosted Zone信息。但我有一个案例,我有域名,我需要获取托管区域ID可能是基于提供的域名?我怎样才能做到这一点?

3 个答案:

答案 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'