aws-cli
--queryパラメータ
サーチ…
備考
--query
パラメータはよく見落とされますが、非常に強力です。 JMESPathのクエリ言語を使用して、サービスの応答を正確にフィルタリングします。
インスタンスを読みやすい方法でリストする
インスタンスは、 describe-instances
への呼び出しから返される多くのメタデータを持っていdescribe-instances
が、基本的なことを見たいときがあります。 JMESPathクエリとテーブル出力を組み合わせて、簡潔なインスタンス情報を簡単に表示できます。
aws ec2 describe-instances --output table --query "Reservations[].Instances[].{Name: Tags[?Key == 'Name'].Value | [0], Id: InstanceId, State: State.Name, Type: InstanceType}"
-----------------------------------------------------
| DescribeInstances |
+-----------+---------------+----------+------------+
| Id | Name | State | Type |
+-----------+---------------+----------+------------+
| i-abc123 | None | stopped | m3.large |
| i-def456 | amazon linux | stopped | t2.micro |
| i-ghi789 | proxy | running | t2.micro |
+-----------+---------------+----------+------------+
今度はそれを分割してください。まず、-- --output table
。これにより、応答の色付き表が作成されます。これは一般に、小さなデータセットを返すコマンドやデータをフィルタリングした場所で最も有用です。
今すぐ--query
上に。これは長く見えますが、実際は非常に簡単です。最初の部分はReservations[].Instances[]
。これは、返されたすべてのインスタンスのフラット化されたリストを返します。
クエリの次の部分は.{}
カプセル化されてい.{}
。これがしていることは、各値がソースオブジェクト(この例ではインスタンス)に適用されるJMESPathクエリであるリスト内の各項目の新しいjsonオブジェクトを作成することです。これらのほとんどは非常に単純ですが、 Name
はもう少し複雑です。
Name
を取得するための完全なクエリはTags[?Key == 'Name'].Value | [0]
。その最初の部分であるTags[?Key == 'Name']
は、キーがName
であるタグをインスタンスのタグから検索しています。後半.Value | [0]
はこれらのタグのそれぞれの値を選択してから、最初の項目をリストから取り出します(この場合は1つだけです)。
あなたが望んでいるのは、完全にあなた次第です。たとえば、DNS情報を追加する場合は、簡単に新しいキーを追加することができますDNS: PublicDnsName
: DNS: PublicDnsName
:
aws ec2 describe-instances --output table --query "Reservations[].Instances[].{Name: Tags[?Key == 'Name'].Value | [0], Id: InstanceId, State: State.Name, Type: InstanceType, DNS: PublicDnsName}"
--------------------------------------------------------------------------------------------------------
| DescribeInstances |
+--------------------------------------------------+-----------+---------------+----------+------------+
| DNS | Id | Name | State | Type |
+--------------------------------------------------+-----------+---------------+----------+------------+
| | i-abc123 | None | stopped | m3.large |
| | i-def456 | amazon linux | stopped | t2.micro |
| ec2-192-168-1-1.us-west-2.compute.amazonaws.com | i-ghi789 | proxy | running | t2.micro |
+--------------------------------------------------+-----------+---------------+----------+------------+