在python for循环中更改实例类型时出错

时间:2017-01-27 11:22:27

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

我有一个使用boto3库的Python 2脚本。

基本上,我有一个实例ID列表,我需要迭代它将每个实例的类型从c4.xlarge更改为t2.micro。

为了完成这项任务,我正在调用modify_instance_attribute方法。

我不知道为什么,但我的脚本会挂起以下错误消息:

  

您所请求的配置不支持EBS优化的实例。

以下是我的一般情景:

说我有一段代码如下:

def change_instance_type(instance_id):
    client = boto3.client('ec2')
    response = client.modify_instance_attribute(
        InstanceId=instance_id,
        InstanceType={
            'Value': 't2.micro'
        }
    )

所以,如果我这样执行:

change_instance_type('id-929102')

一切都没有问题。

然而,奇怪的是,如果我在for循环中执行它,如下面的

instances_list = ['id-929102']
for instance_id in instances_list:
    change_instance_type(instance_id)

我收到上面的错误消息(即,您所请求的配置不支持EBS优化的实例)并且我的脚本死了。

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:3)

当我查看EBS优化实例时,我不会看到支持T2微处理器:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html

我认为您还需要添加EbsOptimized=false