Ligne de commande AWS CLI: comment utiliser «--query» pour sortir plusieurs lignes source

12

J'utilise aws-cli version 1.7.8 pour obtenir la --querysortie pour créer un enregistrement dérivé de plusieurs lignes. Dans ce cas, j'essaie d'obtenir des informations spécifiques de describe-instances.

Dans la describe-instancescommande, nous obtenons des lignes / sections qui font référence à RESERVATIONS, INSTANCESet TAGS.

Je peux simplement exécuter la nouvelle commande AWS CLI pour obtenir les informations des trois lignes individuellement:

Ligne RESERVATION:

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

Ligne INSTANCE:

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

Ligne TAG:

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

Je peux exécuter ces 3 commandes et concaténer les résultats pour former 1 enregistrement.

Est-ce que quelqu'un sait s'il existe un moyen de l'exécuter en tant qu'une seule commande (au lieu de 3 commandes distinctes)?

J'ai essayé PIPE et d'autres formes de syntaxe, mais je ne suis pas encore en mesure de trouver une bonne solution.

Puis-je obtenir la sortie équivalente de ces 3 commandes à partir d'une seule commande?

Chris Charles
la source
Exécutez les commandes Windows à partir d'une invite PowerShell dans Windows. Ensuite, il renverra des résultats.
Patrick Parks

Réponses:

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

Cette commande imprime l'ID d'instance, l'ID AMI, les balises de clé et de valeur. Vous pouvez voir plus d'exemples ici: Contrôle de la sortie de commande à partir de l'interface de ligne de commande AWS

Peycho Dimitrov
la source
L'ajout d'une brève description de ce que fait la commande peut être utile.
dawud
cela ne fonctionnerait-il que dans une CLI non basée sur Windows? Je l'ai essayé dans Windows CMD - ce n'est pas le cas mais - dans CentOS - cela a fonctionné.
Naveen Vijay
Où est la documentation sur la syntaxe de requête ???
cosbor11
Oui. Vous êtes ici: docs.aws.amazon.com/cli/latest/userguide/…
Peycho Dimitrov
La documentation AWS ne contient que quelques exemples. N'y a-t-il pas une spécification complète sur la syntaxe?
cosbor11
1

Avec Windows (cmd.exe, cmder.exe, etc.), il faut utiliser des guillemets doubles (") au lieu de guillemets simples (') autour de la chaîne de requête. Sinon, la console imprime simplement le chemin dans la requête et ne fait même pas générer une erreur.

Jason
la source