python - 停止特定区域的所有实例
问题描述
我想停止特定区域的实例,让我们每晚说 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)
解决方案
您可以获取所有实例 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 文档