Ich habe eine Instanz mit dem Namen dev-server-03
. Wie kann ich nun alle dev-server-*
Instanzen über die Befehlszeile durchsuchen ?
Ich benutze AWS CLI-Tool.
Ich habe eine Instanz mit dem Namen dev-server-03
. Wie kann ich nun alle dev-server-*
Instanzen über die Befehlszeile durchsuchen ?
Ich benutze AWS CLI-Tool.
Antworten:
Angenommen, Sie verwenden die Konvention, den Namen der Instanz in ein Tag mit dem Schlüssel "Name" einzufügen (dies macht die AWS Console, wenn Sie einen Namen eingeben), dann können Sie die --filters
Option verwenden, um diese Instanzen mit aufzulisten aws-cli:
aws ec2 describe-instances --filters 'Name=tag:Name,Values=dev-server-*'
Wenn Sie nur die Instanz-IDs dieser Instanzen benötigen, können Sie Folgendes verwenden:
aws ec2 describe-instances --filters 'Name=tag:Name,Values=dev-server-*' \
--output text --query 'Reservations[*].Instances[*].InstanceId'
Hinweis: --query
Möglicherweise ist eine aktuelle Version von aws-cli erforderlich, es lohnt sich jedoch, diese zu erwerben.
Name=tag:Name
--query 'Reservations[].Instances[].[InstanceId]
die funktioniert für mich
jq
Tool kann verwendet werden, um ähnliche Ergebnisse aws --query
wie folgt zu erhalten : - aws ec2 describe-instances | jq '.Reservations[].Instances[].PrivateIpAddress'
Beachten Sie den vorhergehenden .
Punkt.
Sie können mit Namen, Instanz-ID und privater IP weiter filtern mit unten,
aws ec2 describe-instances --filters "Name=tag:Name,Values=*myinstance*" --output json --query 'Reservations[*].Instances[*].[PrivateIpAddress,InstanceId,Tags[?Key==`Name`].Value]' --region us-east-1