最も近い方法は、次のコマンドを使用することです。
このコマンドは、インスタンスのすべての名前をリストします。
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-e2f17e8b --query 'Reservations[].Instances[].Tags[?Key==`Name`].Value[]'
このコマンドは、私が必要としないすべてのプライベートIPアドレス、インスタンスID、およびすべてのタグをリストします。名前だけが必要です。
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-e2f17e8b | jq '.Reservations[].Instances[] | {PrivateIpAddress, InstanceId, Tags}'
この方法でコマンドを実行できない理由がわかりません:
aws ec2 describe-instances | jq '.["Reservations"]|.[]|.Instances|.[]|.PrivateIpAddress + " " + .InstanceId + " " + .Tags[?Key==`Name`].Value[]'
このコマンドは機能しますが、すべてのタグキー名が表示されます。
aws ec2 describe-instances | jq '.["Reservations"]|.[]|.Instances|.[]|.PrivateIpAddress + " " + .InstanceId + " " + .Tags'
1
これらのコマンドの動作を理解しようとせずに、どこかからこれらのコマンドをコピーするだけですか?
—
マイケルハンプトン
そうではありませんが、jqの使用方法と、必要な基本的なjson出力を取得する方法を理解しようとしました。しかし、私が達成しようとしていることの例は見つかりませんでした。
—
イマジニア14年
Name
キー名値出力のフィルターとして「Tags [?Key == ] .Value []」を使用できるのは、aws-cli v1.3.0以降のみです。そして、--filterとjqの組み合わせを使用して、必要な出力を取得しています。最も近いコマンドはaws ec2 describe-instances --filters Name = vpc-id、Values = vpc-e2f17e8b | jq '.Reservations []。Instances [] | {PrivateIpAddress、InstanceId、Tags} 'jqを使用してTag Key = Nameを参照する方法を知る必要があります。