2014-11-22 52 views
1
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>') 

這是否值替換,當我運行無法使用AWS使用Python博託

conn.run_instances('<ami-image-id>') 

它給出了一個錯誤,說明

「NoneType」對象沒有屬性「run_instances」啓動實例

+0

您的AWS賬戶是新的嗎?我相信新賬戶不能再使用EC2 Classic,而必須推出VPC。因此,您需要將''subnet_id = ''添加到您的run_instances調用中。 – sysconfig 2014-11-23 00:36:52

+0

您的'conn'對象爲None,它無法連接到該區域 - 可能是因爲憑據無效。連接後,嘗試打印conn,如下所示: '>>> conn = boto.ec2.connect_to_region('us-west-1',aws_access_key_id ='...',aws_secret_access_key ='..') > >> conn EC2Connection:ec2.us-west-1.amazonaws.com ' – helloV 2014-11-23 01:15:31

+0

嘗試連接到地區它沒有工作sumhow他們是與終端的問題我重申了系統,它的工作!感謝您的輸入 – user4283094 2014-11-24 18:01:49

回答

0

錯誤輸出表明您的conn變量沒有被設置。

嘗試直接運行您的connect_to_region()命令並查看返回的錯誤消息。一些可能的解釋:

  • 不正確的訪問密鑰和/或祕密密鑰
  • 從計算機到美西2端點

訪問密鑰應該看起來像無連接: AKIAJUWHFZOPPDM7B7XA

您的密鑰應由40個隨機字符組成。

如果您使用的指定角色的EC2實例使用boto,則不需要傳遞憑證。它們將根據分配的角色通過實例元數據服務自動進行配置。

+0

嘗試連接到它沒有工作的地區總結他們是與終端的問題我重申了系統,它的工作!感謝您的輸入 – user4283094 2014-11-24 18:01:06

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 

有幾件事情要檢查:

  • 確保您的訪問密鑰和祕密密鑰是正確的
  • 確保您的AMI ID相匹配的AMI光伏
  • 要確保你有一個默認VPC爲您的帳戶

雖然在所有這些情況下,錯誤消息應該更加明確,如:

boto.exception.EC2ResponseError: EC2ResponseError: 400 Bad Request InvalidParameterCombination Non-Windows instances with a virtualization type of 'hvm' are currently not supported for this instance type.df213b43-e8e1-4cd5-9aa9-c4a9277588b8