2017-09-26 72 views
-1

有人可以幫助我使用boto腳本,該腳本列出了沒有特定標籤名稱的ec2實例。Boto腳本可以獲取沒有特定標籤(名稱)的ec2實例

Name的值可以是任何值。我們只需要名稱尚未設置的實例。

我試過這個:這是正確的嗎?它返回某些情況下,還收到此錯誤:

Traceback (most recent call last): 
    File "try6.py", line 7, in <module> 
    if 'Foo' not in [t['Key'] for t in i.tags]: 
TypeError: 'NoneType' object is not iterable 




import boto3 

instances = [i for i in boto3.resource('ec2', region_name='us-east-1').instances.all()] 

# Print instance_id of instances that do not have a Tag of Key='Foo' 
for i in instances: 
    if 'Foo' not in [t['Key'] for t in i.tags]: 
     print i.instance_id 

什麼將取代美孚 的去因爲我必須列出不具有與其相關聯的名稱標籤的情況。

+1

您正在標記與boto,boto3以及aws-cli。選擇你正在使用的內容,你已經閱讀了多少內容,你嘗試了什麼;然後詢問一個格式良好的問題 – hjpotter92

+0

使用AWS Config執行此操作可能更合適 – Vorsprung

回答

0
instances=boto3.resource('ec2', region_name='eu-west-1').instances.all() 

for i in instances: 
    if 'Foo' not in [t['Key'] for t in i.tags]: 
     print i.instance_id 

我想這樣的作品在您的例子不照.instances.all()返回一個boto3.resources.collection.ec2.instancesCollection

所以[]構造使得列表一個boto3.resources.collection.ec2.instancesCollection對象!而只是在循環中使用對象的工作,因爲對象有一個迭代器定義

相關問題