2017-08-23 16 views
0

以下のpythonコードを使用して、ebsボリュームに関連付けられたすべてのタグを取得し、そのebsボリュームに関連付けられたスナップショットに戻します。出力からaws:reservedタグを除外して、そのままそのままそのまま適用することができます。ec2.describe_tagsに 'aws:'で始まるaws boto3を使用してタグキーをフィルタリングする方法は?

import boto3 
ec2 = boto3.client('ec2') 
volume_tags = ec2.describe_tags(Filters=[{'Name': 'resource-id', 'Values': ['volume-id',],},],) 
tag_snapshot = ec2.create_tags(Resources=[snapshot-id],Tags=volume_tags) 
+0

質問が不明です。 'describe_tags'では、予約されたタグを除外しますか? – helloV

+0

混乱のため残念ですが、describe_tagsのアクションからはいはい、例えばawsの予約タグを除外しようとしています.. "aws:cloudformation:stack-id" – user3389426

+0

'describe_tags'の内部にロジック/正規表現フィルタービルドがありません。しかし、結果を 'paginators'に渡し、より複雑なフィルタリングを行うことができます。 http://boto3.readthedocs.io/en/latest/guide/paginators.html – mootmoot

答えて

0

おそらく残念ながら、私はにできてるのpython

から上記のコマンドを実行するために、サブプロセスを使用し

aws ec2 describe-tags | jq '.Tags[] | select(contains({Key: "aws:"}) | not)' 

以下のようにあなたはJSONの結果をフィルタリングするには、CLI AWSで「JQ」プログラムを使用することができますjqのpythonバインディングを使って同じことを試してください。

jqまたはpyjq pythonバインディングにpipを使用しているインストールに関する問題があります。

関連する問題