我正在按照基本的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服务器上的日期似乎匹配,所以我不确定是什么原因引起的。任何建议将不胜感激。
答案 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_type
和key_name
。否则,您将无法登录您的实例。