Запрос команды AWS CLI ebs volume-id на основе имени тега EC - PullRequest
0 голосов
/ 30 мая 2019

Нужна помощь, чтобы исправить этот запрос

aws ec2 describe-instances --filters "Name=tag:Name,Values=UST1TWASDEVP02A" --query "Reservations[*].Instances[*].BlockDeviceMappings[*].Ebs.[VolumeId]"

Это дает мне вывод:

[
    [
        [
            [
                "vol-0eb27ed4482aa6b72"
            ],
            [
                "vol-0a8a5716d4abb92cc"
            ],
            [
                "vol-0adb47a85b3541697"
            ]
        ]
    ]
]

Мне нужно только извлечь второе значение.

Я смог использовать JQ, чтобы получить результат

aws ec2 describe-instances --filters Name=tag:Name,Values=UST1TWASDEVP02A" | jq -r .Reservations[0].Instances[0].BlockDeviceMappings[1].Ebs.VolumeId

Спасибо

Ответы [ 2 ]

0 голосов
/ 12 июня 2019

Вы можете использовать следующую команду для печати второго тома:

aws ec2 описывает-экземпляры --filters "Name = tag: Name, Values ​​= UST1TWASDEVP02A" --query "Reservation []. Экземпляры []. BlockDeviceMappings [*]. [Ebs.VolumeId] "- выходной текст | sed -n '2p'

0 голосов
/ 30 мая 2019

Если вы хотите извлечь только второе значение, вы можете использовать:

aws ec2 describe-instances --filters "Name=tag:Name,Values=UST1TWASDEVP02A" --query "Reservations[*].Instances[*].BlockDeviceMappings[1].Ebs.[VolumeId]" --output text

Разница заключается в использовании BlockDeviceMappings[1], который будет второй BlockDeviceMappings записью для каждой комбинации Резервирование + Экземпляр.

...