错误'EC2'对象在aws lambda函数中没有属性'instances'

时间:2016-11-17 09:57:26

标签: python amazon-web-services lambda

测试此代码后,我收到此错误:

'EC2' object has no attribute 'instances': AttributeError
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 11, in lambda_handler
instances=ec2.instances.filter(Filters=filters)
AttributeError: 'EC2' object has no attribute 'instances'

第11行是代码中的最后一行

ec2 = boto3.client('ec2', region_name=region)

def lambda_handler(event, context):
    filters = [{ 'Name': 'instance-state-name', 'Values': ['running']}]
    instances=ec2.instances.filter(Filters=filters)

这里的错误究竟在哪里?

2 个答案:

答案 0 :(得分:6)

使用EC2.Client.describe_instances()方法:

instances=ec2.describe_instances(Filters=filters)

答案 1 :(得分:0)

除了Leon's answer之外,您还可以使用EC2.ServiceResource类:

ec2 = boto3.resource('ec2', region_name=region)

因为调用ec2.instances.filter()的好处是返回了资源列表list(ec2.Instance)(而不是dict),您可以在其上调用start(),{{ 1}},等等:

stop()