Назад | Перейти на главную страницу

Есть ли команда для вывода списка экземпляров AWS, приводящая к короткому выводу?

У меня настроен интерфейс командной строки AWS, и я могу использовать aws ec2 description-instance, чтобы получить возвращаемый объект json, который описывает все известные детали моих экземпляров. Есть ли простой способ получить только короткий список, например имя экземпляра и идентификатор экземпляра?

Я хочу иметь возможность работать с моими экземплярами в командной строке, но чтобы получить идентификаторы экземпляров (которые требуются для команд, таких как start-instance), мне нужно просмотреть весь этот вывод.

Да, через --query вариант.

Эта опция позволяет фильтровать и возвращать определенные элементы из структуры. Есть специальный шаблон [*] нотация, позволяющая перебирать списки объектов; мы будем использовать это, чтобы перебрать список экземпляров EC2 и вернуть желаемые значения.

Получение InstanceID, имени тега экземпляра как JSON:

aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId, Tags[?Key==`Name`].Value | [0]]'

[
    [
        [
            "i-abcd1234",
            "MyFirstInstance"
        ]
    ],
    [
        [
            "i-efgh5678",
            "MySecondInstance"
        ]
    ]
]

Получение InstanceID, имени тега экземпляра в виде текста:

Если вы не хотите работать с json, вы также можете добавить --output возможность вывода текста:

aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId, Tags[?Key==`Name`].Value | [0]]' --output text

i-abcd1234      MyFirstInstance
i-efgh5678      MySecondInstance

Дальнейшее чтение: