停止特定区域的所有实例

时间:2019-05-12 12:41:31

标签: python amazon-web-services amazon-ec2 boto3

我想每晚停止特定区域的实例,让我们说us-east-1,尽管我不想指定实例ID。相反,我想停止该区域中存在的所有实例。我正在使用以下代码。我可以对代码进行哪些更改?

import boto3
region = 'us-east-1'
instances = ['i-12345cb6de4f78g9h', 'i-08ce9b2d7eccf6d26']

def lambda_handler(event, context):
ec2 = boto3.client('ec2', region_name=region)
ec2.start_instances(InstanceIds=instances)
print 'started your instances: ' + str(instances)

1 个答案:

答案 0 :(得分:2)

您可以获取所有实例ID,然后将其停止-

ec2 = boto3.resource('ec2')
instances = ec2.instances.filter(
    Filters=[{'Values': ['running']}])
instance_ids = [instance.id for instance in instances]
ec2.instances.filter(InstanceIds=instance_ids).stop()

请参阅boto文档here