Erstellen von HTTP-Anforderungen an Amazon SWF - Amazon Simple Workflow Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen von HTTP-Anforderungen an Amazon SWF

Wenn Sie keinen derAWSMit der POST-Anforderungsmethode können Sie Amazon Simple Workflow Service (Amazon SWF-Vorgänge) über HTTP ausführen. Bei der POST-Methode müssen Sie den Vorgang im Header der Anforderung festlegen und im Anforderungstext die Daten für den Vorgang im JSON-Format angeben.

Inhalt des HTTP-Headers

Amazon SWF benötigt die folgenden Informationen im Header einer HTTP-Anforderung:

  • hostDer Amazon SWF SWF-Endpunkt.

  • x-amz-dateSie müssen den Zeitstempel entweder im HTTP angebenDate-Header oder derAWS x-amz-date header(Einige HTTP-Client-Bibliotheken lassen denDate-Header). Ist der Header x-amz-date vorhanden, ignoriert das System bei der Anforderungsauthentifizierung alle Header des Typs Date.

    Das Datum muss in einem der folgenden drei Formate angegeben werden, wie in HTTP/1.1 RFC festgelegt:

    • Sun, 06 Nov 1994 08:49:37 GMT (RFC 822, aktualisiert durch RFC 1123)

    • Sunday, 06-Nov-94 08:49:37 GMT (RFC 850, abgelöst durch RFC 1036)

    • Sun Nov 6 08:49:37 1994 (ANSI C asctime()-Format)

  • x-amzn-authorization Die Parameter der signierten Anforderung im Format:

    AWS3 AWSAccessKeyId=####,Algorithm=HmacSHA256, [,SignedHeaders=Header1;Header2;...] Signature=S(StringToSign)

    AWS3— Dies ist einAWSimplementierungsspezifisches Tag, das die Authentifizierungsversion angibt, die zum Signieren der Anforderung verwendet wird (derzeit ist dieser Wert für Amazon SWF immerAWS3) enthalten.

    AWSAccessKeyId— IhreAWSZugriffsschlüssel-ID.

    Algorithm— Der Algorithmus, der verwendet wird, um den HMAC-SHA-Wert des Zeichenfolgen-zu-Signs zu erzeugen, z.HmacSHA256oderHmacSHA1aus.

    Signature— Base64 (Algorithmus (StringToSign, SigningKey))). Details dazu finden Sie unter Berechnen der HMAC-SHA-Signatur für Amazon SWF.

    SignedHeaders— (Optional) Falls vorhanden, muss eine Liste aller HTTP-Header enthalten, die in der Berechnung der kanonisierten HttpHeaders verwendet werden. Die Listeneinträge müssen durch ein einzelnes Semikolon (;) (ASCII-Zeichen 59) getrennt werden.

  • x-amz-target— Der Zieldienst der Anforderung und der Vorgang für die Daten, in folgendem Format

    com.amazonaws.swf.service.model.SimpleWorkflowService. + <action>

    Beispiel, com.amazonaws.swf.service.model.SimpleWorkflowService.RegisterDomain

  • content-type— Der Typ muss JSON und den Zeichensatz mit angeben.application/json; charset=UTF-8

Nachfolgend finden Sie einen Beispiel-Header für eine HTTP-Anforderung zum Erstellen einer Domäne.

POST http://swf.us-east-1.amazonaws.com/ HTTP/1.1 Host: swf.us-east-1.amazonaws.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.25) Gecko/20111212 Firefox/3.6.25 ( .NET CLR 3.5.30729; .NET4.0E) Accept: application/json, text/javascript, */* Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive Content-Type: application/json; charset=UTF-8 X-Requested-With: XMLHttpRequest X-Amz-Date: Fri, 13 Jan 2012 18:42:12 GMT X-Amz-Target: com.amazonaws.swf.service.model.SimpleWorkflowService.RegisterDomain Content-Encoding: amz-1.0 X-Amzn-Authorization: AWS3 AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE,Algorithm=HmacSHA256,SignedHeaders=Host;X-Amz-Date;X-Amz-Target;Content-Encoding,Signature=tzjkF55lxAxPhzp/BRGFYQRQRq6CqrM254dTDE/EncI= Referer: http://swf.us-east-1.amazonaws.com/explorer/index.html Content-Length: 91 Pragma: no-cache Cache-Control: no-cache {"name": "867530902", "description": "music", "workflowExecutionRetentionPeriodInDays": "60"}

Das folgende Beispiel enthält die entsprechende HTTP-Antwort.

HTTP/1.1 200 OK Content-Length: 0 Content-Type: application/json x-amzn-RequestId: 4ec4ac3f-3e16-11e1-9b11-7182192d0b57

HTTP-Textinhalt

Der Textkörper einer HTTP-Anforderung enthält die Daten für den Vorgang, der im Header der HTTP-Anforderung festgelegt ist. Verwenden Sie das JSON-Datenformat zur gleichzeitigen Übermittlung von Datenwerten und -strukturen. Elemente können mit der Klammerschreibweise innerhalb anderer Elemente verschachtelt werden. Im Folgenden wird beispielsweise eine Anforderung angezeigt, alle Workflow-Ausführungen aufzulisten, die zwischen zwei angegebenen Zeitpunkten begannen — unter Verwendung der Unix-Zeitnotation.

{ "domain": "867530901", "startTimeFilter": { "oldestDate": 1325376070, "latestDate": 1356998399 }, "tagFilter": { "tag": "music purchase" } }

Beispiel für eine Amazon SWF SWF-JSON-Anforderung und -Antwort

Das folgende Beispiel zeigt eine Anforderung an Amazon SWF, eine Beschreibung der zuvor erstellten Domäne zu erhalten. Anschließend wird die Amazon SWF SWF-Antwort von veranschaulicht.

HTTP-POST-Anforderung

POST http://swf.us-east-1.amazonaws.com/ HTTP/1.1 Host: swf.us-east-1.amazonaws.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.25) Gecko/20111212 Firefox/3.6.25 ( .NET CLR 3.5.30729; .NET4.0E) Accept: application/json, text/javascript, */* Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive Content-Type: application/json; charset=UTF-8 X-Requested-With: XMLHttpRequest X-Amz-Date: Sun, 15 Jan 2012 03:13:33 GMT X-Amz-Target: com.amazonaws.swf.service.model.SimpleWorkflowService.DescribeDomain Content-Encoding: amz-1.0 X-Amzn-Authorization: AWS3 AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE,Algorithm=HmacSHA256,SignedHeaders=Host;X-Amz-Date;X-Amz-Target;Content-Encoding,Signature=IFJtq3M366CHqMlTpyqYqd9z0ChCoKDC5SCJBsLifu4= Referer: http://swf.us-east-1.amazonaws.com/explorer/index.html Content-Length: 21 Pragma: no-cache Cache-Control: no-cache {"name": "867530901"}

Amazon SWF SWF-Antwort

HTTP/1.1 200 OK Content-Length: 137 Content-Type: application/json x-amzn-RequestId: e86a6779-3f26-11e1-9a27-0760db01a4a8 {"configuration": {"workflowExecutionRetentionPeriodInDays": "60"}, "domainInfo": {"description": "music", "name": "867530901", "status": "REGISTERED"} }

Beachten Sie, dass auf das Protokoll (HTTP/1.1) ein Statuscode (200) folgt. Der Codewert 200 gibt an, dass ein Vorgang erfolgreich war.

Amazon SWF serialisiert keine Nullwerte. Wenn Ihr JSON-Parser auf das Serialisieren von Nullwerten für Anforderungen festgelegt ist, werden diese von Amazon SWF von ignoriert.