2008-10-23 14 views
14

Python hat eine number of soap stacks; Soweit ich das beurteilen kann, haben alle erhebliche Mängel.Was ist der beste Python-Soap-Stack für die Nutzung von Amazon Web Services WSDL?

Hat jemand Glück gehabt, und mit WSDL für S3, EC2 und SQS in Python zu verbrauchen?

Meine Erfahrung ist, dass schummeln beim Erstellen eines Client-Objekts fehlschlägt; Nach einigen Streitereien generiert ZSI Client-Code, der nicht funktioniert. etc.

Schließlich kenne ich boto, aber da es eine handgerollte Wrapper um AWS ist, ist es (1) unvollständig und (2) nie mit der neuesten AWS WSDL up-to-date.

Antwort

3

Die REST oder "Abfrage" APIs sind definitiv einfacher zu benutzen als SOAP, aber leider bietet der Dienst (EC2) leider keine Alternativen zu SOAP. Wie Sie bereits festgestellt haben, sind die vorhandenen SOAP-Implementierungen von Python für die meisten Zwecke unzureichend. Ein Workaround-Ansatz besteht darin, das XML für den SOAP-Envelope/Body direkt zu generieren, anstatt eine SOAP-Zwischenschicht zu durchlaufen. Wenn Sie mit XML/SOAP vertraut sind, ist dies in den meisten Fällen nicht schwer und ermöglicht es Ihnen, mit der SOAP-Implementierung auf der anderen Seite um spezielle Idiosynkrasien herum zu arbeiten. Das kann ziemlich wichtig sein, da fast jeder SOAP-Stapel da draußen seinen eigenen Geschmack von Bugginess/Seltsamkeit hat, mit dem man sich auseinandersetzen muss.

+2

Diese Frage ist seit einiger Zeit offen; Ich habe entschieden, dass dies die pragmatischste Antwort ist, obwohl sie das grundlegende Problem nicht behandelt. Grundsätzlich ist Pythons Unterstützung für SOAP subpar; Es gibt heute keine wirklich praktikable Lösung. –

1

Wenn ich mich nicht irre, können Sie Amazon Web Services sowohl über REST als auch über SOAP nutzen. Verwenden von REST mit Python wäre viel einfacher.

+0

Wie würden Sie das tun? Und kann WSDL nicht auch REST-Bindungen beschreiben? –

0

Auschecken http://boto.googlecode.com. Dies ist der beste Weg, AWS in Python zu verwenden.

+0

Vielleicht, aber zuerst sehe ich meinen Kommentar über Boto in der ursprünglichen Frage, die ich gestellt habe. –