使用Boto时400错误请求

时间:2015-04-28 18:09:04

标签: amazon-ec2 boto

我正在按照基本的boto教程尝试连接到EC2实例。当我尝试为基本的Amazon Linux AMI创建一个简单的实例时,我收到以下错误:

import boto.ec2
conn = boto.ec2.connect_to_region("us-east-1")
conn.run_instances('ami-1ecae776')

追踪(最近一次通话):   文件“”,第1行,in   在run_instances中输入文件“/usr/local/lib/python2.7/dist-packages/boto/ec2/connection.py”,第973行     动词= 'POST')   在get_object中输入文件“/usr/local/lib/python2.7/dist-packages/boto/connection.py”,第1208行     提升self.ResponseError(response.status,response.reason,body) boto.exception.EC2ResponseError:EC2ResponseError:400 Bad Request InvalidParameterCombination此实例类型目前不支持虚拟化类型为“hvm”的非Windows实例.fb016420-47f3-4453-b0bc-ebd2f3c70ba5

如果在SO的其他地方已经解决了这个问题我很抱歉,但我确实做了彻底的搜索,包括在400 Bad Request while pulling instances with amazon中尝试答案。我的机器上的日期命令和远程aws服务器上的日期似乎匹配,所以我不确定是什么原因引起的。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:2)

您唯一指定的是AMI。该特定AMI是基于HVM的,可以与所有当前的EC2实例类型一起使用。但是,boto中.onstuff的默认值为instance_type,旧版实例类型仅支持PV虚拟化。

因此,要使命令运行,您需要显式指定m1.small参数,如下所示:

instance_type

除了conn.run_instances('ami-1ecae776', instance_type='t1.micro') 之外,您可能还希望在通话中提供一些其他参数,例如instance_typekey_name。否则,您将无法登录您的实例。