如何解决如何从列表中停止 EC2 实例
我有以下代码,它在本地运行良好,用于停止 EC2 实例,但是当我尝试移动其生产时,它仅停止第一个实例,而不是第二个/第 n 个实例
import boto3
import json
access_key = "AKIAJSVXXXXXXXXXX"
secret_key = "mSvhX5q7uw8dTZ543qtC6OXXXXXXXXXXXX"
client = boto3.client('ec2',aws_access_key_id=access_key,aws_secret_access_key=secret_key,region_name='us-east-1')
file1 = open("Myfile.txt","r").read().split("\n")
print(file1)
ec2_result = client.describe_instances(
Filters=[
{
'Name': 'tag:Name','Values': file1
}
]
)
ids = [ec2_result['Reservations'][0]['Instances'][i]['InstanceId'] for i in
range(len(ec2_result['Reservations'][0]['Instances']))]
print(ids)
response = client.stop_instances(
InstanceIds=ids
)
print("stooped now")
我的文件.txt
instanceonename
instance2name
它在我的本地系统中运行良好,但在生产中,它仅停止第一个 EC2 实例 不是第二个
解决方法
它只停止一个实例,因为您的列表推导式只迭代一个实例。您需要双重:
ids = [instance['InstanceId'] \
for reservation in ec2_result['Reservations'] \
for instance in reservation['Instances']]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。