使用 Amazon Web Services WSDL 的最佳 python 肥皂堆栈是啥?
Posted
技术标签:
【中文标题】使用 Amazon Web Services WSDL 的最佳 python 肥皂堆栈是啥?【英文标题】:What's the best python soap stack for consuming Amazon Web Services WSDL?使用 Amazon Web Services WSDL 的最佳 python 肥皂堆栈是什么? 【发布时间】:2010-09-18 22:00:20 【问题描述】:Python 有一个number of soap stacks;据我所知,都存在重大缺陷。
有没有人幸运地消费和在 python 中使用 WSDL 用于 S3、EC2 和 SQS?
我的经验是suds在构造Client对象时会失败;经过一番争论,ZSI 生成了不起作用的客户端代码;等等
最后,我知道boto,但由于它是围绕 AWS 的手动包装器,因此 (1) 不完整且 (2) 从未与最新的 AWS WSDL 保持同步。
【问题讨论】:
【参考方案1】:REST 或“查询”API 肯定比 SOAP 更易于使用,但不幸的是,至少有一次服务 (EC2) 没有提供任何 SOAP 替代方案。正如您已经发现的那样,Python 现有的 SOAP 实现对于大多数用途来说都严重不足。一种解决方法是直接为 SOAP 信封/正文生成 XML,而不是通过中间 SOAP 层。如果您对 XML / SOAP 有点熟悉,那么在大多数情况下这并不难做到,并且允许您使用另一端的 SOAP 实现来解决任何特定的特性;这可能非常重要,因为几乎每个 SOAP 堆栈都有自己的错误/怪异风味需要应对。
【讨论】:
这个问题已经有很长一段时间了;我认为这是最务实的回应,尽管它没有解决根本问题。从根本上说,python 对 SOAP 的支持是次要的。目前还没有真正可行的解决方案。【参考方案2】:如果我没记错的话,您可以通过 REST 和 SOAP 使用 Amazon Web Services。将 REST 与 python 结合使用会更容易。
【讨论】:
你会怎么做? WSDL 也不能描述 REST 绑定吗?【参考方案3】:查看http://boto.googlecode.com。这是在 Python 中使用 AWS 的最佳方式。
【讨论】:
也许吧,但首先看看我在我问的原始问题中对 boto 的评论。【参考方案4】:FWIW,我让这个 Amazon WSDL 用 Suds 0.3.8 解析:
url = 'http://s3.amazonaws.com/ec2-downloads/2009-04-04.ec2.wsdl' c = 客户(网址) 打印 c
-- 剪辑-- 端口 (1): (AmazonEC2Port) 方法(43): --- 为简洁起见删除了更多内容 ---
-马特
【讨论】:
以上是关于使用 Amazon Web Services WSDL 的最佳 python 肥皂堆栈是啥?的主要内容,如果未能解决你的问题,请参考以下文章
BizTalk调用WS-Security的web services
使用 Amazon Web Services 自动安排 Scrapy Crawler