2016-08-25 12 views
-1

以下は簡単なコードです。鍵をプルするべきである:名前タグ。しかし、2番目のタグを追加すると、順序が変わるように見えるので、0は必ずしも名前ではありません???ec2タグ番号は変更されますか?

instances = ec2.instances.filter(Filters=[{'Name':'instance-state-name','Values':['running']}]) 
    for instance in instances: 
     for tag in instance.tags: 
      if 'Name'in tag['Key']: 
       name = tag['Value'] 
    print "Pulling all instance info..." 
    for instance in instances: 
     print(instance.id, instance.instance_type,instance.private_ip_address, instance.tags[0].get("Value")) 
+2

「タグ番号」とはどういう意味ですか?あなたのインスタンスに固有の識別子が必要な場合は、 'instance id'を使います。それは同じままで、インスタンスごとに一意です –

答えて

1

はい。 instance.tagsはリストで、あなたのタグはリストのどこにでも表示できます。 '名前'を取得しようとしている場合は、リストをループする必要があります。リストの各要素は辞書です。値を取得する前に、キーが「名前」であることを確認してください。

複雑ですが、コードは非常に簡単です。あなたは盲目的に行うことはできませんinstance.tags[0].get("Value")

+0

ああ。 1つのタグがある場合にのみ0が機能します。とった。これはどういうことでしょうか? –

+0

これに類似したもの。これに私の答えを参照してください:http://stackoverflow.com/questions/34751794/displaying-ec2-instance-name-using-boto-3 – helloV

+0

非常に良い、ありがとう。 –

関連する問題