Membuat Permintaan HTTP ke Amazon SWF - Amazon Simple Workflow Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Membuat Permintaan HTTP ke Amazon SWF

Jika Anda tidak menggunakan salah satunya AWS SDKs, Anda dapat melakukan operasi Amazon Simple Workflow Service (Amazon SWF) melalui HTTP menggunakan metode permintaan POST. Metode POST mengharuskan Anda menentukan operasi di header permintaan dan memberikan data untuk operasi dalam format JSON dalam isi permintaan.

Konten Header HTTP

Amazon SWF membutuhkan informasi berikut di header permintaan HTTP:

  • host Endpoint Amazon SWF.

  • x-amz-dateAnda harus memberikan cap waktu baik di Date header HTTP atau AWS x-amz-date header (beberapa perpustakaan klien HTTP tidak mengizinkan Anda mengatur Date header). Saat header x-amz-date ada, sistem mengabaikan header Date saat mengautentikasi permintaan.

    Tanggal harus ditentukan dalam salah satu dari tiga format berikut, seperti yang ditentukan dalam HTTP/1.1 RFC:

    • Min, 06 Nov 1994 08:49:37 GMT (RFC 822, diperbarui oleh RFC 1123)

    • Min, 06-Nov-94 08:49:37 GMT (RFC 850, diusangkan oleh RFC 1036)

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

  • x-amzn-authorization Permintaan ditandatangani dalam format:

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

    AWS3— Ini adalah tag AWS khusus implementasi yang menunjukkan versi otentikasi yang digunakan untuk menandatangani permintaan (saat ini, untuk Amazon SWF nilai ini selalu). AWS3

    AWSAccessKeyId— ID Kunci AWS Akses Anda.

    Algorithm— Algoritma yang digunakan untuk membuat nilai HMAC-SHA dari string-to-sign, seperti atau. HmacSHA256 HmacSHA1

    Signature— Base64 (Algoritma ( StringToSign, SigningKey )). Untuk detail selengkapnya, lihat Menghitung Tanda Tangan HMAC-SHA untuk Amazon SWF

    SignedHeaders— (Opsional) Jika ada, harus berisi daftar semua Header HTTP yang digunakan dalam perhitungan HttpHeaders Canonicalized. Satu karakter titik koma (;) (karakter ASCII 59) harus digunakan sebagai pembatas untuk nilai daftar.

  • x-amz-target – Layanan tujuan dari permintaan dan operasi untuk data, dalam format

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

    Sebagai contoh, com.amazonaws.swf.service.model.SimpleWorkflowService.RegisterDomain

  • content-type – Jenis kebutuhan untuk menentukan JSON dan set karakter, sebagai application/json; charset=UTF-8

Berikut ini adalah contoh header untuk permintaan HTTP dalam pembuatan domain.

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"}

Berikut adalah contoh respons HTTP yang sepadan.

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

Konten Isi HTTP

Isi permintaan HTTP berisi data untuk operasi yang ditentukan dalam header permintaan HTTP. Gunakan format data JSON untuk menyampaikan nilai-nilai data dan struktur data, secara bersamaan. Elemen dapat bersarang dalam elemen lain menggunakan notasi braket. Misalnya, hal berikut menunjukkan permintaan untuk mencantumkan semua eksekusi alur kerja yang dimulai antara dua titik yang ditentukan dalam waktu—menggunakan notasi Waktu Unix.

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

Sampel Permintaan dan Respon JSON Amazon SWF

Contoh berikut menunjukkan permintaan ke Amazon SWF untuk deskripsi domain yang kita buat sebelumnya. Kemudian contoh menunjukkan respon Amazon SWF.

Permintaan POST HTTP

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"}

Respons Amazon SWF

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"} }

Perhatikan protokol (HTTP/1.1) diikuti dengan kode status (200). Sebuah nilai kode 200 menunjukkan operasi yang berhasil.

Amazon SWF tidak membuat serial nilai null. Jika parser JSON Anda diatur untuk membuat serial nilai null untuk permintaan, Amazon SWF mengabaikannya.