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

Командная строка интерфейса командной строки AWS: как использовать «--query» для вывода нескольких строк исходного кода

Я использую aws-cli версии 1.7.8, чтобы получить --query output для создания одной записи, полученной из нескольких строк. В этом случае я пытаюсь получить конкретную информацию от describe-instances.

в describe-instances команда, мы получаем строки / разделы, которые относятся к RESERVATIONS , INSTANCES , и TAGS .

Я могу просто запустить новую команду CLI AWS, чтобы получить информацию из всех трех строк по отдельности:

Строка БРОНИРОВАНИЕ:

aws ec2 describe-instances --instance-ids i-xxxxxxxx --query 'Reservations[*].ReservationId'

Строка INSTANCE:

aws ec2 describe-instances --instance-ids i-xxxxxxxx --query 'Reservations[*].[Instances[*].[InstanceId,ImageId]]'

Строка TAG:

aws ec2 describe-instances --instance-ids i-xxxxxxxx --query 'Reservations[].Instances[].[Tags[?Key==название]]'

Я могу запустить эти 3 команды и объединить результаты в одну запись.

Кто-нибудь знает, есть ли способ запустить это как ОДНУ (1) команду вместо трех разных команд?

Я пробовал PIPE и другие формы синтаксиса, но пока не могу найти хорошего решения.

Могу ли я получить эквивалентный вывод этих трех команд из одной команды?

aws ec2 describe-instances --instance-id i-77777777 \
  --query 'Reservations[*].Instances[*].[InstanceId,ImageId,Tags[*]]' \
  --output text

Эта команда напечатает идентификатор экземпляра, идентификатор AMI, теги ключа и значения. Вы можете увидеть больше примеров здесь: Управление выводом команд из интерфейса командной строки AWS

В Windows (cmd.exe, cmder.exe и т. Д.) Необходимо использовать двойные кавычки (") вместо одинарных кавычек (') вокруг строки запроса. В противном случае консоль просто печатает путь в запросе и даже не генерировать ошибку.