在AWS支持API中使用Python Boto

在AWS支持API中使用Python Boto,python,amazon-web-services,boto,Python,Amazon Web Services,Boto,我曾经使用boto与S3进行交互,没有任何问题,但现在我正尝试连接到AWS支持API,以提取关于开放票据、可信顾问结果等的信息。对于每个AWS服务,boto库似乎有不同的连接方法?例如,对于S3,它是: conn = S3Connection(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY) 根据boto文档,连接到AWS支持API时应满足以下条件: >>> from boto.support.connection import Suppor

我曾经使用boto与S3进行交互,没有任何问题,但现在我正尝试连接到AWS支持API,以提取关于开放票据、可信顾问结果等的信息。对于每个AWS服务,boto库似乎有不同的连接方法?例如,对于S3,它是:

conn = S3Connection(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
根据boto文档,连接到AWS支持API时应满足以下条件:

>>> from boto.support.connection import SupportConnection
>>> conn = SupportConnection('<aws access key>', '<aws secret key>')
因此,对于踢腿,我尝试通过传递键创建一个AWSAuthConnection,然后是AWSQueryConnection(awsauth),然后是SupportConnection(awsquery),但没有运气。这是在一个脚本中

最后一点值得注意的是,通过在我的主目录的.boto文件中定义我的密钥,并从命令行运行python解释器,我可以直接导入并调用SupportConnection()(无参数),它就可以工作了。它显然是从.boto文件中提取我的密钥并使用它们,但我还没有分析每一行源代码来理解如何使用它们,坦率地说,我希望避免这样做

长话短说,我希望有人对boto有一些熟悉,并连接到AWS API,而不是S3(通过谷歌存在的大部分资料),以帮助我进一步排除故障

这应该有效:

import boto.support
conn = boto.support.connect_to_region('us-east-1')
这假定您在boto配置文件或IAM角色中具有凭据。如果要传递显式凭据,请执行以下操作:

import boto.support
conn = boto.support.connect_to_region('us-east-1', aws_access_key_id="<access key>", aws_secret_access_key="<secret key>")
导入boto.support
conn=boto.support.connect_到_地区('us-east-1',aws_访问权_密钥_id=“”,aws_机密_访问权_密钥=”)

这个基本的咒语应该适用于所有地区的所有服务。只需导入正确的模块(例如boto.support或boto.ec2或boto.s3或其他),然后调用它的
connect\u to\u region
方法,提供所需的区域名称作为参数。

谢谢-您能否详细说明如何/在何处将密钥传递到AWS?在我的本地机器上,.boto文件可以工作,但是如果我将代码移动到prod服务器,在那里我需要通过env变量传递密钥,或者甚至作为参数传递给构造函数,那该怎么办呢?是的,这样做了,谢谢!boto文件必须有点过时。使用我尝试过的方法进行引导,尽管它确实引用了一条“捷径”,这基本上就是您在这里提供的。尽管如此,我还是无法将密钥传递到connect_to_region(),因此我可能已经在这里发布了相关信息。谢谢@在启动prod服务器时,最好使用IAM角色,而不是在服务器上显式存储密钥。Boto将自动使用临时的、轮换的凭据。类似的问题有一些提示:。通常,S3和其他服务的凭据管理方式相同。
import boto.support
conn = boto.support.connect_to_region('us-east-1', aws_access_key_id="<access key>", aws_secret_access_key="<secret key>")