23

これに少し似たjsonブロックがあります(AWSから推測しましたか)

{ "Vpcs":[ 
  {
    "VpcId":"vpc-blabla1",
    "OtherKey":"Value"
  },
  {
    "VpcId":"vpc-blabla2",
    "OtherKey":"Value"
  },
  {
    "VpcId":"vpc-blabla3",
    "OtherKey":"Value"
  },
  {
    "VpcId":"vpc-blabla4",
    "OtherKey":"Value"
  }]
}

JMESPath を使用して vpc-blabla1 と vpc-blabla3 の OtherKey 値を取得したい (例、vpc-id の任意のリスト)

JMESpath フィルターで blabla1 を取得できます

Vpcs[?VpcId=='blabla1'].OtherKey

しかし、複数の値の構文が見つかりませんか? Or 構文 || を試しました。および複合構文 | しかし、どちらも機能しませんか?-私が試したことについては、以下を参照してください。

 Vpcs[?VpcId=='blabla1' || 'blabla1'].OtherKey
 Vpcs[?VpcId=='blabla1' || ?VpcId=='blabla1'].OtherKey
 Vpcs[(?VpcId=='blabla1') || (?VpcId=='blabla1')].OtherKey
 Vpcs[?VpcId=='blabla1' | ?VpcId=='blabla1'].OtherKey

助言がありますか?これは可能ですか、それとも一度に 1 つの結果セットを収集し、必要な結果を再結合する必要がありますか?

4

1 に答える 1

43

複数の一般的な構文は[? expr1 || expr2] であるため、この場合、次を使用できます。

Vpcs[?VpcId=='vpc-blabla1' || VpcId=='vpc-blabla2'].OtherKey

別のオプションとして、検索する VPC ID が多数ある場合は、次のように言うこともできます。

Vpcs[?contains(`["vpc-blabla1", "vpc-blabla2"]`, VpcId)].OtherKey
于 2016-06-21T16:06:33.820 に答える