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.