Linha de comando da AWS CLI: Como usar “--query” para gerar várias linhas de origem

9

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

No comando describe-instances , obtemos linhas / seções que se referem a RESERVATIONS , INSTANCES e TAGS .

Eu posso 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== Name ]]'

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

Alguém sabe se existe uma maneira de executar esse comando como ONE (1), em vez de 3 comandos distintos?

Já experimentei o PIPE e outras formas de sintaxe, mas ainda não consegui encontrar uma boa solução.

Posso obter a saída equivalente desses três comandos a partir de um único comando?

    
por Chris Charles 17.02.2015 / 17:40

2 respostas

18

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

Este comando imprimirá Id de Instância, ID de AMI, 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

    
por 27.03.2015 / 19:22
1

Com o 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 não até gerar um erro.

    
por 04.09.2018 / 14:57