我已经使用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存在的大量资料)来帮助我进一步排除故障。在
这应该是有效的:
这假设您在boto配置文件或IAM角色中具有凭据。如果要传递显式凭据,请执行以下操作:
^{pr2}$这个基本咒语应该适用于所有地区的所有服务。只需导入正确的模块(例如。完全支持或者博图ec2,然后调用它的
connect_to_region
方法,提供所需区域的名称作为参数。在相关问题 更多 >
编程相关推荐