AWS CLI命令根据EC标记名称查询ebs volume-id

时间:2019-05-29 21:18:49

标签: json amazon-web-services aws-cli

需要一些帮助来解决此查询

release

这一直给我这个输出:

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

我只需要提取第二个值。

我能够使用jq获得结果

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

谢谢

2 个答案:

答案 0 :(得分:0)

如果仅希望提取第二个值,则可以使用:

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

区别在于使用BlockDeviceMappings[1],它将为每个Reservation + Instance组合的第二个BlockDeviceMappings条目。

答案 1 :(得分:0)

您可以使用以下命令来打印第二个volumeID:

aws ec2 describe-instances --filters“ Name = tag:Name,Values = UST1TWASDEVP02A” --query“ Reservations []。Instances []。BlockDeviceMappings [*]。[Ebs.VolumeId ]“-输出文本| sed -n'2p'