首页 > 解决方案 > 停止特定区域的所有实例

问题描述

我想停止特定区域的实例,让我们每晚说 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)

标签: pythonamazon-web-servicesamazon-ec2boto3

解决方案


您可以获取所有实例 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 文档


推荐阅读