Python 有许多肥皂栈;据我所知,都存在重大缺陷。
有没有人有幸在 python 中为 S3、EC2 和 SQS使用和使用 WSDL?
我的经验是,构建 Client 对象时 suds 失败;经过一番争论,ZSI 生成了不起作用的客户端代码;等等
最后,我知道boto,但由于它是围绕 AWS 的手动包装器,因此 (1) 不完整且 (2) 永远不会与最新的 AWS WSDL 保持同步。
REST 或“查询”API 肯定比 SOAP 更容易使用,但不幸的是,至少有一次服务 (EC2) 没有提供 SOAP 的任何替代方案。正如您已经发现的那样,Python 现有的 SOAP 实现对于大多数用途来说都严重不足。一种解决方法是直接为 SOAP 信封/正文生成 XML,而不是通过中间 SOAP 层。如果您对 XML / SOAP 有点熟悉,那么在大多数情况下这并不难做到,并且允许您使用另一端的 SOAP 实现来解决任何特定的特性;这可能非常重要,因为几乎每个 SOAP 堆栈都有其自己的 bugginess / 怪异风味需要应对。
如果我没记错的话,您可以通过 REST 和 SOAP 使用 Amazon Web Services。将 REST 与 python 一起使用会容易得多。
查看http://boto.googlecode.com。这是在 Python 中使用 AWS 的最佳方式。
FWIW,我让这个 Amazon WSDL 用 Suds 0.3.8 解析:
url = ' http://s3.amazonaws.com/ec2-downloads/2009-04-04.ec2.wsdl '
c = Client(url)
print c
-- snip --
端口 (1):
(AmazonEC2Port)
方法 (43):
--- 为简洁起见删除了更多 ---
-马特