Als Nächstes verwende ich die folgenden Befehle.
Mit diesem Befehl können Sie alle Namen von Instanzen auflisten.
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-e2f17e8b --query 'Reservations[].Instances[].Tags[?Key==`Name`].Value[]'
Mit diesem Befehl können Sie alle privaten IP-Adressen, Instanz-IDs und ALLEN Tags auflisten, die ich nicht benötige. Ich brauche nur den Namen.
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-e2f17e8b | jq '.Reservations[].Instances[] | {PrivateIpAddress, InstanceId, Tags}'
Ich bin mir nicht sicher, warum ich den Befehl nicht so ausführen kann:
aws ec2 describe-instances | jq '.["Reservations"]|.[]|.Instances|.[]|.PrivateIpAddress + " " + .InstanceId + " " + .Tags[?Key==`Name`].Value[]'
Dieser Befehl funktioniert, zeigt jedoch alle Tags-Schlüsselnamen an.
aws ec2 describe-instances | jq '.["Reservations"]|.[]|.Instances|.[]|.PrivateIpAddress + " " + .InstanceId + " " + .Tags'
Name
] .Value []" als Filter für die Ausgabe von Schlüsselnamen und -werten ist nur nach aws-cli v1.3.0 möglich. Und ich benutze eine Kombination aus --filter und jq, um die gewünschte Ausgabe zu erhalten. Der nächste Befehl lautet aws ec2 describe-instance --filters Name = vpc-id, Values = vpc-e2f17e8b | jq '.Reservations []. Instances [] | {PrivateIpAddress, InstanceId, Tags} 'Ich muss nur wissen, wie ich mit jq auf den Tag Key = Name verweisen kann.Antworten:
Sie müssen die Backslashes umgehen, um die Antwort korrekt zu formatieren.
Das ist also der eigentliche Befehl, den Sie wollen:
Und du brauchst nicht
.Value[]
. Sie können nur verwenden.Value
, und das wird die gleiche Ausgabe geben.Das ist übrigens großartig. Ich werde das selbst umsetzen!
KORREKTUR: Das obige funktioniert nicht, wenn der Wert von
.Value
"None" ist. Das funktioniert besser:quelle
Versuche dies
quelle
|
ist eine Art Filter?Die obigen Antworten sind in Ordnung, aber mein Favorit des Gleichen ist;
in der Tat kann man es in eine BASH-Funktionslistenliste einfügen;
dann ruf einfach an der Eingabeaufforderung als 'awsls' an
quelle
Etwas wie das?
quelle
Ich habe einen Filter für den Status "running" hinzugefügt. Poste es hier, falls es für irgendjemanden hilfreich ist.
Mein Anwendungsfall ist etwas anders. Ich erstelle Ansible-Hostdateien, also möchte ich nur einen privaten IP-Namen auf allen laufenden Hosts.
quelle
Fügen Sie dies für Leute hinzu, die diesen Beitrag bei der Suche nach Informationen zu Ihrer Instanz finden. Sie können der select-Anweisung eine VPC hinzufügen, um diese ebenfalls zu erhalten.
In Powershell können Sie Folgendes verwenden:
Mit der AWS-CLI können Sie Folgendes verwenden:
quelle