この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、臼田です。
皆さんPython書いてますか?
boto3で書いてて、ぐぐってもあんまりいい情報がなかったのでNameタグを取得する方法を共有します。
スクリプト
# -*- coding: utf-8 -*-
import boto3
ec2 = boto3.resource('ec2')
instance = ec2.Instance(id='i-xxxxxxxx')
name_tag = [x['Value'] for x in instance.tags if x['Key'] == 'Name']
name = name_tag[0] if len(name_tag) else ''
print(name)
Python 3.6で動作しない問題を修正しました。2.7, 3.6で動作を確認しています。ご指摘いただいたしんさかさん、ありがとうございます!
ec2.Instance.tags
で該当インスタンスのタグ一覧を取得して、filterで"key": "Name"
のdictを取得します。
filter結果はlistになっているので[0]
から取り出し、もしNameタグがなければfilter結果が空なので''
を返します。
正直これが一番いいかわかりません。
他にもっといい方法があったら教えてほしいです。