AWSリソースの管理を自動化するためのbashスクリプトを作成しています。私はaws-cli
とjq
を使用しています。これまでのことは素晴らしかったです。ネストされた値に基づくjqを使用したフィルタ配列
自分のタグにカスタムタグを付けてタグ付けしています。状況によっては、カスタムタグのKey
とValue
の両方に基づいてリソースのリストをフィルタリングしたいと考えています。しかし、私はそれを行うために簡潔なjq
クエリを試して問題を抱えています。
ので、例えば、私のEC2インスタンスのための(トリミング)JSON出力が似ている場合:
[
{
"PublicIpAddress": "11.22.33.44",
"PrivateIpAddress": "55.66.77.88",
"Tags": [
{
"Value": "live199.blah.com",
"Key": "Name"
},
{
"Value": "live-standalone",
"Key": "hc-class"
}
]
}
]
[
{
"PublicIpAddress": "111.222.333.444",
"PrivateIpAddress": "555.666.777.888",
"Tags": [
{
"Value": "staging99.blah.com",
"Key": "Name"
},
{
"Value": "staging-standalone",
"Key": "hc-class"
}
]
}
]
...と私はTags.Key == "hc-class"
とTags.Value = "staging-standalone"
が、私はそれをどのように行うのか、エントリを見つける必要があります簡潔な方法でjq
?
大変助かりました。
あなたはaws CLIから直接JMESPATHを使ってそれを行うことができます。質問はhttp://stackoverflow.com/questions/43354116/using-jmespath-and-aws-ec2-describe-instances-to-output-multiple-タグ値 - どのようにして作業するのかを具体的に説明する値 –
「エントリー」とはどういう意味ですか? 「タグ」は配列なので、包含基準は不明です。あなたが期待した結果を出せば助けになるかもしれません。 – peak
[複数のオブジェクトをマッチングしてJSONオブジェクトリストをjqでフィルタリングする]の可能な複製(http://stackoverflow.com/questions/33973816/filtering-json-object-list-with-jq-by-matching-multiple-objects) –