import boto.ec2
conn = boto.ec2.connect_to_region("us-west-2",
... aws_access_key_id='<aws access key>',
... aws_secret_access_key='<aws secret key>')
当我运行时,这是否取代了值
conn.run_instances('<ami-image-id>')
它给出了一个错误陈述
&#39; NoneType&#39;对象没有属性&#39; run_instances&#39;
答案 0 :(得分:0)
错误输出表明您的conn
变量未设置。
尝试直接运行connect_to_region()
命令,查看返回的错误消息。一些可能的解释:
您的访问密钥应如下所示:AKIAJUWHFZOPPDM7B7XA
您的密钥应包含40个随机字符的字符串。
如果您从分配了角色的EC2实例使用boto,则无需传递凭据。它们将通过Instance Metadata Service根据分配的角色自动配置。
答案 1 :(得分:0)
我刚在我的笔记本电脑上试过这个(在我的〜/ .aws / config文件中配置了访问密钥,密钥),它按预期工作。
$ /usr/bin/python2.7
Python 2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import boto.ec2
>>> conn = boto.ec2.connect_to_region("us-west-2")
>>> conn.run_instances('ami-55a7ea65')
Reservation:r-a76255ac
要检查的一些事项:
虽然在所有这些情况下,错误消息应该更明确,例如:
boto.exception.EC2ResponseError:EC2ResponseError:400 Bad Request
InvalidParameterCombination
非Windows 虚拟化类型为&#39; hvm&#39;目前不是 支持此实例 type.df213b43-e8e1-4cd5-9aa9-c4a9277588b8