Linha de comando da CLI da AWS: como usar "--query" para gerar várias linhas de origem


12

Estou usando o aws-cli versão 1.7.8 para obter a --querysaída para criar um registro que é derivado de várias linhas. Nesse caso, estou tentando obter informações específicas describe-instances.

No describe-instancescomando, temos linhas / seções que se referem a RESERVATIONS, INSTANCESe TAGS.

Sou capaz de simplesmente executar o novo comando da AWS CLI para obter as informações de todas as três linhas individualmente:

Linha de reserva:

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

Linha INSTANCE:

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

Linha TAG:

aws ec2 describe-instances --instance-ids i-xxxxxxxx --query 'Reservations[].Instances[].[Tags[?Key==Nome]]'

Eu posso executar esses 3 comandos e concatenar os resultados para formar 1 registro.

Alguém sabe se existe uma maneira de executar isso como um (1) comando, em vez de três comandos distintos?

Eu tentei o PIPE e outras formas de sintaxe, mas ainda não consegui encontrar uma boa solução.

Posso obter a saída equivalente desses 3 comandos em um único comando?


Execute os comandos do Windows a partir de um prompt do PowerShell no Windows. Então ele retornará resultados.
Patrick Parks

Respostas:


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

Este comando imprimirá o ID da instância, o ID da AMI, as tags de chave e valor. Você pode ver mais exemplos aqui: Controlando a saída de comando da interface de linha de comando da AWS


Adicionar uma breve descrição do que o comando está fazendo pode ser útil.
dawud 27/03

isso funcionaria apenas em CLI não baseado em janelas? Eu tentei no Windows CMD - mas não - no CentOS - funcionou.
Naveen Vijay

Onde está alguma documentação sobre a sintaxe da consulta ???
cosbor11


Os documentos da AWS têm apenas alguns exemplos. Não há uma especificação completa sobre a sintaxe?
cosbor11

1

No Windows (cmd.exe, cmder.exe, etc.), é necessário usar aspas duplas (") em vez de aspas simples (') ao redor da string de consulta. Caso contrário, o console simplesmente imprime o caminho na consulta e nem sequer gerar um erro.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.