在AWS支持API中使用Python Boto

2024-09-29 23:19:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经使用boto与S3进行了无问题的交互,但是现在我正试图连接到AWS支持API,以收回关于未结票据、可信顾问结果等的信息。对于每个AWS服务,boto库似乎有不同的连接方法?例如,对于S3,它是:

conn = S3Connection(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)

根据boto文档,要连接到AWS支持API,应该执行以下操作:

^{pr2}$

然而,在深入研究源代码之后,我发现了一些问题。第一,boto.support.连接实际上并不存在。boto.连接有,但不包含类SupportConnection。boto.support.layer1存在,并且具有类SupportConnection,但它不接受文档建议的键参数。相反,它需要1个参数-一个AWSQueryConnection对象。该类在中定义boto.连接. AWSQueryConnection接受1个参数-一个AWSAuthConnection对象,类也在boto.连接. 最后,AWSAuthConnection接受一个通用对象,其需求在init中定义为:

class AWSAuthConnection(object):
    def __init__(self, host, aws_access_key_id=None,
                 aws_secret_access_key=None,
                 is_secure=True, port=None, proxy=None, proxy_port=None,
                 proxy_user=None, proxy_pass=None, debug=0,
                 https_connection_factory=None, path='/',
                 provider='aws', security_token=None,
                 suppress_consec_slashes=True,
                 validate_certs=True, profile_name=None):

所以,对于kicks,我尝试通过传递键来创建一个AWSAuthConnection,然后是AWSQueryConnection(awsauth),然后是SupportConnection(awsquery),但没有运气。这是在剧本里。在

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

长话短说,我希望有人对boto有一些熟悉,并连接到awsapi而不是S3(通过google存在的大量资料)来帮助我进一步排除故障。在


Tags: 对象noneawsapitrue参数定义s3
1条回答
网友
1楼 · 发布于 2024-09-29 23:19:31

这应该是有效的:

import boto.support
conn = boto.support.connect_to_region('us-east-1')

这假设您在boto配置文件或IAM角色中具有凭据。如果要传递显式凭据,请执行以下操作:

^{pr2}$

这个基本咒语应该适用于所有地区的所有服务。只需导入正确的模块(例如。完全支持或者博图ec2,然后调用它的connect_to_region方法,提供所需区域的名称作为参数。在

相关问题 更多 >

    热门问题