Il più vicino che ottengo sta usando i seguenti comandi.
Questo comando riesce a elencare tutti i nomi delle istanze.
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-e2f17e8b --query 'Reservations[].Instances[].Tags[?Key==`Name`].Value[]'
Questo comando riesce a elencare tutti gli indirizzi IP privati, ID istanza e TUTTI i tag di cui non ho bisogno. Ho solo bisogno del nome.
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-e2f17e8b | jq '.Reservations[].Instances[] | {PrivateIpAddress, InstanceId, Tags}'
Non sono sicuro del motivo per cui non posso eseguire il comando in questo modo:
aws ec2 describe-instances | jq '.["Reservations"]|.[]|.Instances|.[]|.PrivateIpAddress + " " + .InstanceId + " " + .Tags[?Key==`Name`].Value[]'
Questo comando funziona ma mostra tutti i nomi delle chiavi dei tag.
aws ec2 describe-instances | jq '.["Reservations"]|.[]|.Instances|.[]|.PrivateIpAddress + " " + .InstanceId + " " + .Tags'
Name
] .Value []" come filtro per l'output del valore del nome chiave è possibile solo dopo aws-cli v1.3.0. E sto usando una combinazione di --filter e jq per ottenere l'output che desidero. Il comando più vicino è aws ec2 descrizioni-istanze --filters Nome = vpc-id, Valori = vpc-e2f17e8b | jq '.Reservations []. Instances [] | {PrivateIpAddress, InstanceId, Tags} 'Devo solo sapere come fare riferimento a Tag Key = Name usando jq.