我正在让用户输入一个AWS实例ID列表。我正在使用Pyton 3和boto打印实例的信息,然后将其删除。
当我尝试运行脚本时收到此错误:
File ".\aws_test.py", line 11, in <module>
print("Instance ID: ", instance.id)
AttributeError: 'dict' object has no attribute 'id'
这是我的示例代码:
import boto3
import collections
from collections import defaultdict
ec2 = boto3.client('ec2')
instance_id = 'i-076361b30ee404bb4'
instance = ec2.describe_instances(
InstanceIds=[instance_id]
)['Reservations'][0]['Instances'][0]
# Add instance info to a dictionary
ec2info = defaultdict()
print("Instance ID: ", instance.id)
如果可以获取实例ID,我将访问需要打印的其他ID,如下所示:
ec2info[instance.id] = {
'Instance ID': instance.id,
'Type': instance.instance_type,
'State': instance.state['Name'],
'Private IP': instance.private_ip_address,
'Public IP': instance.public_ip_address,
'Launch Time': instance.launch_time
}
并打印出来。为什么无法获得instance.id值?如何解决此错误?
答案 0 :(得分:1)
describe_instances()
returns a dict
。使用:
instance["id"]
这使用instance.__getitem__("id")
进行密钥查找。您正在做的是一个属性查找,这是不同的。