Le plus proche que j'obtiens utilise les commandes suivantes.
Cette commande parvient à répertorier tous les noms d'instances.
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-e2f17e8b --query 'Reservations[].Instances[].Tags[?Key==`Name`].Value[]'
Cette commande parvient à répertorier toutes les adresses IP privées, les identifiants d'instance et TOUTES les balises dont je n'ai pas besoin. J'ai juste besoin du nom.
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-e2f17e8b | jq '.Reservations[].Instances[] | {PrivateIpAddress, InstanceId, Tags}'
Je ne sais pas pourquoi je ne peux pas exécuter la commande comme ceci:
aws ec2 describe-instances | jq '.["Reservations"]|.[]|.Instances|.[]|.PrivateIpAddress + " " + .InstanceId + " " + .Tags[?Key==`Name`].Value[]'
Cette commande fonctionne mais elle affiche tous les noms des clés des balises.
aws ec2 describe-instances | jq '.["Reservations"]|.[]|.Instances|.[]|.PrivateIpAddress + " " + .InstanceId + " " + .Tags'
Name
] .Value []" comme filtre pour la sortie Key Name Value n'est possible qu'après aws-cli v1.3.0. Et j'utilise une combinaison de --filter et jq pour obtenir la sortie que je veux. La commande la plus proche est aws ec2 describe-instances --filters Name = vpc-id, Values = vpc-e2f17e8b | jq '.Reservations []. Instances [] | {PrivateIpAddress, InstanceId, Tags} 'J'ai juste besoin de savoir comment référencer le Tag Key = Name à l'aide de jq.Réponses:
Vous devez échapper aux barres obliques inverses afin de formater correctement la réponse.
Voici donc la commande que vous souhaitez:
Et vous n'en avez pas besoin
.Value[]
. Vous pouvez simplement utiliser.Value
, et cela donnera la même sortie.C'est génial, au fait. Je vais le mettre en œuvre moi-même!
CORRECTION: ce qui précède ne fonctionnera pas si la valeur de
.Value
est "None". Cela fonctionne mieux:la source
Essaye ça
la source
|
est une sorte de filtre?Les réponses ci-dessus sont OK, mais ma préférée est la même;
en fait, on peut le placer dans une liste de liste de fonctions BASH;
puis appelez simplement à partir de l'invite en tant que 'awsls'
la source
Quelque chose comme ça?
la source
J'ai ajouté un filtre pour l'état d'instance "en cours d'exécution". L'afficher ici au cas où cela serait utile pour quiconque.
Mon cas d'utilisation est légèrement différent, je génère des fichiers hôtes Ansible, donc je veux juste un nom IP # privé sur tous les hôtes en cours d'exécution.
la source
Ajout de cela pour les personnes qui trouveront ce message lors de la recherche de la façon d'obtenir vos informations d'instance. Vous pouvez également ajouter un VPC dans l'instruction select pour le recevoir également.
Dans PowerShell, vous pouvez utiliser:
Avec l'AWS CLI, vous pouvez utiliser:
la source