13

aws cli には --query オプションがあり、一部の情報のみを選択できます。

たとえば、ec2 describe-instances からセキュリティ グループ名だけを取得したいと考えています。

私が実行した場合:

aws ec2 describe-instances --output text --query 'Reservations[*].Instances[*].[InstanceId,InstanceType,SecurityGroups]

私の出力は次のようになります:

i-xxxxxxx m1.type [{u'GroupName': 'groupName', u'GroupId': 'sg-xxxxx'}]

インデックスを使用してリストの要素にアクセスすることもできます。

aws ec2 describe-instances --output text --query 'Reservations[*].Instances[*].[InstanceId,InstanceType,Tags[0].Value,Tags[0].Name]

Tag[0] の代わりに、名前が指定されているタグを検索するようにタグを照会することは可能ですか?

4

4 に答える 4

14

1.3.0 の時点で、次のようにその情報を照会できるようになりました。

 --query 'Reservations[*].Instances[*].Tags[?Key==`<keyname>`].Value[]'

だからあなたはこれを持っています:

      "Tags" : [
        {
          "Value" : "webserver01",
          "Key" : "InstanceName"
        },

あなたはこれをしたいでしょう:

aws ec2 describe-instances --query 'Reservations[*].Instances[*].Tags[?Key==`InstanceName`].Value[]'
于 2014-05-28T20:20:04.003 に答える
3

おそらく使用したいのは --filters オプションです。

aws ec2 describe-instances --output text --filters "Name=tag-key, Values=SecurityGroups, Name=tag-value, Values=Foo" --region us-east-1

フィルターを変更して、探している正確なフィールドを「クエリ」することができます。

他の例については、新しい AWS CLI に関するアトランタ AWS ミートアップ グループの講演のこのスライドシェアをチェックしてください。

于 2014-03-30T21:31:09.870 に答える
0

この方法は私にとってはうまくいきます:(これはバージョン1.3.0以降でのみ機能します)

aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId, Tags[?Key==`Name`].Value[*]]'
于 2014-04-22T19:43:37.763 に答える