Existe um comando para listar instâncias do AWS que resultem em saída curta?

3

Eu tenho meu AWS CLI configurado e posso usar aws ec2 describe-instances para obter o objeto json retornado que descreve todos os detalhes conhecidos de minhas instâncias. Existe uma maneira fácil de obter apenas uma pequena lista, como nome da instância e id da instância?

Eu quero poder trabalhar com minhas instâncias na linha de comando, mas para obter os ids de instância (que comandos como start-instances requerem), eu tenho que percorrer toda a saída.

    
por jdelaporte 05.11.2015 / 19:26

1 resposta

2

Sim, através da opção --query .

Esta opção permite filtrar e retornar elementos específicos da estrutura. Existe uma notação curinga [*] especial que permite iterar sobre listas de objetos; usaremos isso para iterar a lista de instâncias do EC2 e retornar os valores desejados.

Recuperando InstanceID, nome da tag da instância como JSON:

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

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

Recuperando InstanceID, nome da tag da instância como texto:

Se você não quiser trabalhar com o json, também poderá adicionar a opção --output ao texto de saída:

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

i-abcd1234      MyFirstInstance
i-efgh5678      MySecondInstance

Leitura adicional:

por 06.11.2015 / 04:10