Как получить HostedZoneId HostedZone в As route53 с тем же именем? - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть 2 хост-зоны с одинаковыми именами.Я хочу получить hostedZoneId хост-зоны, используемой для региона us-west-2.

aws route53 list-hosted-zones-by-name --dns-name domainname

Это дает следующий вывод:

{
    "HostedZones": [
        {
            "ResourceRecordSetCount": 3, 
            "CallerReference": "2018-08-07T14:02:30.733383821+05:30", 
            "Config": {
                "Comment": "Private Hosted Zone for tenant:us-west-2", 
                "PrivateZone": true
            }, 
            "Id": "/hostedzone/D2JGX0PDINSIDA", 
            "Name": "domainname."
        }, 
        {
            "ResourceRecordSetCount": 3, 
            "CallerReference": "2018-08-16T16:38:29.821900042+05:30", 
            "Config": {
                "Comment": "Private Hosted Zone for tenant:eu-west-1", 
                "PrivateZone": true
            }, 
            "Id": "/hostedzone/Q1HEEHGD5JH3G3", 
            "Name": "domainname."
        }
    ], 
    "DNSName": "domainname", 
    "IsTruncated": false, 
    "MaxItems": "100"
}

Как видите, есть две записидля того же имени я хочу получить идентификатор хост-зоны, используемой для нас-запад-2.У меня сейчас нет никакой уникальности, чтобы идентифицировать HostedZone, используемый для Нас, кроме Комментария.

Я пробовал с jq, но я не знаю, как предоставить ему условия.

aws route53 list-hosted-zones-by-name --dns-name domainname | jq ".HostedZones | .[] | .Config"

Любая помощь будет оценена или любые ссылки

1 Ответ

0 голосов
/ 18 декабря 2018

Простой фильтр на jq позволяет использовать endswith или test для сопоставления us-west-2 для значения поля .Config.Comment.(Смотрите это работает на jqplay.org )

jq '.HostedZones[] | select( .Config.Comment | test("us-west-2$") ).Id'

Как всегда, чтобы удалить внешние кавычки, используйте режим --raw-output с jq -r ..

...