测试此代码后,我收到此错误:
'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)
这里的错误究竟在哪里?
答案 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()