2016-06-24 15 views
2

私はインスタンスIDから作業しています。私はタグを取得することができますが、インスタンスIDとタグ「名前」またはインデックスの両方のフィルタがどのように「名前」というタグの値を返すかを把握することはできませんbotoでEC2インスタンスタグ "名前"の値を取得するにはどうすればよいですか?

すべてのタグ私が望むものを見つけるまでそれらを繰り返します。これは正しいとは言えません。

conn.get_all_images(filters={'tag-key': 'Name'. 'resource-id': instance_id}) 
+0

上記のコードは機能しますか? – Will

+0

はい、それは非常にラウンドアバウトのように思えます。 – jorfus

答えて

2

あなたがより良い方法を持っています。あなたは、常に抽象と関数呼び出しでそれを包むことができます:

def get_instance_tag(all_tags, tag_name): 
    for tag in all_tags: 
    if tag_name == tag.name: 
     return tag.value 

    return None 

name = get_instance_tag(conn.get_all_tags({'resource-id': instance_id}), 'Name') 

注意をif tag_name == tag.name:if tag_name in tag.name:よりも正確であること。

+0

ありがとうございました。複数因子フィルターの構文に問題がありました。 – jorfus

+0

マルチファクタフィルタの詳細については、このリンクを参照してください。http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html @jorfus –

0

私はあなたがそれをやっている方法は罰金だと思う:

tags = conn.get_all_tags({'resource-id': instance_id}) 
    for tag in tags: 
    if 'Name' in tag.name: 
     name = tag.value 
関連する問題