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 --filtersOption 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: --queryMö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
jqTool kann verwendet werden, um ähnliche Ergebnisse aws --querywie 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