Sumber Daya Amazon Simple Workflow Service - Amazon Simple Workflow Service

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

Sumber Daya Amazon Simple Workflow Service

Bab ini menyediakan sumber daya tambahan dan informasi referensi yang berguna ketika mengembangkan alur kerja dengan Amazon SWF.

Tipe Batas Waktu Amazon SWF

Untuk memastikan bahwa eksekusi alur kerja berjalan dengan sesuai, Amazon SWF memungkinkan Anda untuk mengatur berbagai jenis batas waktu. Beberapa batas waktu menentukan berapa lama alur kerja dapat berjalan secara keseluruhan. Batas waktu lainnya menentukan berapa lama tugas aktivitas dapat berjalan sebelum ditugaskan ke pekerja dan berapa lama waktu yang bisa mereka gunakan untuk menyelesaikan dari waktu yang dijadwalkan. Semua batas waktu di API Amazon SWF ditentukan dalam hitungan detik. Amazon SWF juga mendukung string NONE sebagai nilai batas waktu, yang menunjukkan tidak ada batas waktu.

Untuk batas waktu yang berkaitan dengan tugas keputusan dan tugas aktivitas, Amazon SWF menambahkan sebuah kejadian ke riwayat eksekusi alur kerja. Atribut acara memberikan informasi tentang jenis batas waktu apa yang terjadi dan tugas keputusan atau aktivitas tugas yang terpengaruh. Amazon SWF juga menjadwalkan tugas keputusan. Ketika penentu menerima tugas keputusan baru, ia akan melihat peristiwa batas waktu dalam sejarah dan mengambil tindakan yang tepat dengan memanggil tindakan. RespondDecisionTaskCompleted

Tugas dianggap terbuka dari saat yang dijadwalkan sampai ditutup. Oleh karena itu tugas dilaporkan sebagai terbuka sementara pekerja sedang memproses tugas. Tugas ditutup ketika seorang pekerja melaporkannya sebagai selesai, dibatalkan, atau gagal. Sebuah tugas juga dapat ditutup oleh Amazon SWF sebagai hasil dari batas waktu.

Batas Waktu dalam Alur Kerja dan Tugas Keputusan

Diagram berikut menunjukkan bagaimana alur kerja dan batas waktu keputusan terkait dengan masa pakai alur kerja:

Masa pakai alur kerja, dengan batas waktu

Ada dua tipe batas waktu timeout yang relevan dengan alur kerja dan tugas keputusan:

  • Alur Kerja Start to Close (timeoutType: START_TO_CLOSE) – Batas Waktu ini menentukan waktu maksimum yang dapat diambil untuk menyelesaikan eksekusi alur kerja. Batas ini diatur sebagai default selama pendaftaran alur kerja, tetapi dapat diambil alih dengan nilai yang berbeda ketika alur kerja dimulai. Jika batas waktu ini terlampaui, Amazon SWF menutup eksekusi alur kerja dan menambahkan WorkflowExecutionTimedOutjenis peristiwa ke riwayat eksekusi alur kerja. Selain timeoutType, atribut kejadian menentukan childPolicy yang berlaku untuk eksekusi alur kerja ini. Kebijakan anak menentukan bagaimana eksekusi alur kerja anak ditangani jika eksekusi alur kerja induk mencapai batas waktu atau berakhir. Contohnya, jika childPolicy diatur menjadi TERMINATE (AKHIRI), maka eksekusi alur kerja anak akan diakhiri. Setelah eksekusi alur kerja mencapai batas waktu, Anda tidak dapat mengambil tindakan apa pun selain panggilan visibilitas.

  • Tugas Keputusan Start to Close (timeoutType: START_TO_CLOSE) – Batas waktu ini menentukan waktu maksimum yang dapat digunakan decider yang sesuai untuk menyelesaikan tugas keputusan. Hal ini diatur selama pendaftaran tipe alur kerja. Jika batas waktu ini terlampaui, tugas ditandai sebagai kehabisan waktu dalam riwayat eksekusi alur kerja, dan Amazon SWF menambahkan jenis peristiwa ke riwayat alur kerja. DecisionTaskTimedOut Atribut kejadian akan mencakup ID untuk kejadian yang sesuai dengan ketika tugas keputusan ini dijadwalkan (scheduledEventId) dan kapan tugas dimulai (startedEventId). Selain menambahkan kejadian tersebut, Amazon SWF juga menjadwalkan tugas keputusan baru untuk memberitahu decider bahwa tugas keputusan ini mencapai batas waktu. Setelah batas waktu ini terjadi, upaya untuk menyelesaikan tugas keputusan yang mencapai batas waktu menggunakan RespondDecisionTaskCompleted akan gagal.

Batas Waktu dalam Tugas Aktivitas

Diagram berikut menunjukkan bagaimana batas waktu terkait dengan masa pakai tugas kegiatan:

Masa pakai tugas, dengan batas waktu

Ada empat tipe batas waktu yang relevan dengan tugas aktivitas:

  • Tugas Aktivitas Start to Close (timeoutType: START_TO_CLOSE) – Batas waktu ini menentukan waktu maksimum yang dapat diambil seorang pekerja aktivitas untuk memproses tugas setelah pekerja menerima tugas. Upaya untuk menutup tugas aktivitas yang habis waktu menggunakan RespondActivityTaskCanceled, RespondActivityTaskCompleted, dan RespondActivityTaskFailedakan gagal.

  • Tugas Aktivitas Heartbeat (timeoutType: HEARTBEAT) – Batas waktu ini menentukan waktu maksimum untuk menjalankan tugas sebelum menyediakan kemajuannya melalui tindakan RecordActivityTaskHeartbeat.

  • Tugas Aktivitas Schedule to Start (timeoutType: SCHEDULE_TO_START) - Batas waktu ini menentukan berapa lama Amazon SWF menunggu sebelum mencapai batas waktu tugas aktivitas jika tidak ada pekerja yang tersedia untuk melakukan tugas. Setelah batas waktu tercapai, tugas yang kedaluwarsa tidak akan ditugaskan ke pekerja lain.

  • Tugas Aktivitas Schedule to Close (timeoutType: SCHEDULE_TO_CLOSE) - Batas waktu ini menentukan berapa lama waktu yang bisa digunakan sejak waktu yang dijadwalkan hingga tugas selesai. Sebagai praktik terbaik, nilai ini tidak boleh lebih besar dari jumlah schedule-to-start batas waktu tugas dan batas start-to-close waktu tugas.

catatan

Setiap tipe batas waktu memiliki nilai default, yang umumnya diatur ke NONE (tak terbatas). Namun, waktu maksimum untuk setiap eksekusi aktivitas terbatas pada satu tahun.

Anda menetapkan nilai default untuk nilai ini selama pendaftaran tipe aktivitas, tetapi Anda dapat mengambil alih dengan nilai baru ketika Anda menjadwalkan tugas aktivitas. Ketika salah satu batas waktu ini terjadi, Amazon SWF akan menambahkan ActivityTaskTimedOutjenis peristiwa ke riwayat alur kerja. Atribut timeoutType nilai dari kejadian ini akan menentukan batas waktu mana yang akan terjadi. Untuk setiap batas waktu, nilai timeoutType ditampilkan dalam tanda kurung. Atribut kejadian juga akan mencakup ID untuk kejadian yang sesuai dengan ketika tugas aktivitas dijadwalkan (scheduledEventId) dan kapan tugas dimulai (startedEventId). Selain menambahkan kejadian tersebut, Amazon SWF juga menjadwalkan tugas keputusan baru untuk memberitahu decider bahwa batas waktu terjadi.

Titik Akhir Amazon Simple Workflow Service

Daftar Wilayah dan Titik Akhir Amazon SWF saat ini disediakan di Referensi Umum Amazon Web, bersama dengan titik akhir untuk layanan lainnya.

Domain Amazon SWF serta semua alur kerja dan aktivitas terkait harus berada dalam wilayah yang sama untuk berkomunikasi satu sama lain. Selain itu, setiap domain terdaftar, alur kerja, dan aktivitas dalam suatu wilayah tidak ada di wilayah lain. Misalnya, jika Anda membuat domain bernama "Domain” di us-east-1 dan di us-west-2, MySample domain tersebut ada sebagai domain terpisah: tidak ada alur kerja, daftar tugas, aktivitas, atau data yang terkait dengan domain Anda dibagikan di seluruh wilayah.

Jika Anda menggunakan AWS sumber daya lain dalam alur kerja Anda, seperti instans Amazon EC2, ini juga harus ada di wilayah yang sama dengan sumber daya Amazon SWF Anda. Satu-satunya pengecualian untuk ini adalah layanan yang mencakup wilayah, seperti Amazon S3 dan IAM. Anda dapat mengakses layanan ini dari alur kerja yang ada di wilayah mana pun yang mendukungnya.

Dokumentasi Tambahan untuk Amazon Simple Workflow Service

Selain Panduan Developer ini, Anda juga dapat membaca informasi lain di dokumentasi berikut.

Referensi API Amazon Simple Storage Service

Referensi API Amazon Simple Workflow Service menyediakan informasi detail tentang Amazon SWF HTTP API, termasuk tindakan, struktur permintaan dan respons serta kode kesalahan.

AWS Flow Framework Dokumentasi

AWS Flow Framework adalah kerangka kerja pemrograman yang menyederhanakan proses penerapan aplikasi asinkron terdistribusi yang menggunakan Amazon SWF untuk mengelola alur kerja dan aktivitas mereka, sehingga Anda dapat berfokus pada penerapan logika alur kerja Anda.

Masing-masing AWS Flow Framework dirancang untuk bekerja secara idiomatis dalam bahasa yang dirancang, sehingga Anda dapat bekerja secara alami dengan bahasa pilihan Anda untuk mengimplementasikan alur kerja dengan semua manfaat Amazon SWF.

Ada AWS Framework Framework untuk Java. Panduan Pengembang AWS Flow Framework untuk Java memberikan informasi tentang cara mendapatkan, mengatur, dan menggunakan AWS Flow Framework untuk Java.

AWS Dokumentasi SDK

AWS Perangkat Pengembangan Perangkat Lunak (SDK) menyediakan akses ke Amazon SWF dalam berbagai bahasa pemrograman. SDK sangat mematuhi HTTP API, tetapi juga menyediakan antarmuka pemrograman bahasa khusus untuk beberapa fitur Amazon SWF. Anda dapat mengetahui informasi lebih lanjut tentang setiap SDK dengan mengunjungi tautan berikut.

catatan

Hanya SDK yang memiliki dukungan untuk Amazon SWF pada saat halaman ini dibuat yang tercantum di sini. Untuk daftar lengkap AWS SDK yang tersedia, kunjungi halaman Alat untuk Amazon Web Services.

Java

AWS SDK for Java Ini menyediakan Java API untuk layanan AWS infrastruktur.

Untuk menampilkan dokumentasi yang tersedia, lihat halaman Dokumentasi AWS SDK for Java. Anda juga dapat langsung menuju bagian Amazon SWF di referensi SDK dengan mengikuti tautan berikut:

JavaScript

AWS SDK for JavaScript Ini memungkinkan pengembang untuk membangun pustaka atau aplikasi yang menggunakan AWS layanan menggunakan sederhana dan easy-to-use API yang tersedia baik di browser atau di dalam aplikasi Node.js di server.

Untuk menampilkan dokumentasi yang tersedia, lihat halaman Dokumentasi AWS SDK for JavaScript. Anda juga dapat langsung menuju bagian Amazon SWF di referensi SDK dengan mengikuti tautan ini:

.NET

AWS SDK for .NET Ini adalah paket tunggal yang dapat diunduh yang mencakup templat proyek Visual Studio, pustaka AWS .NET, sampel kode C #, dan dokumentasi. Ini AWS SDK for .NET memudahkan pengembang Windows untuk membangun aplikasi.NET untuk Amazon SWF dan layanan lainnya.

Untuk menampilkan dokumentasi yang tersedia, lihat halaman Dokumentasi AWS SDK for .NET. Anda juga dapat langsung menuju bagian Amazon SWF di referensi SDK dengan mengikuti tautan berikut:

PHP

AWS SDK for PHP Ini menyediakan antarmuka pemrograman PHP ke Amazon SWF.

Untuk menampilkan dokumentasi yang tersedia, lihat halaman Dokumentasi AWS SDK for PHP. Anda juga dapat langsung menuju bagian Amazon SWF di referensi SDK dengan mengikuti tautan ini:

Python

AWS SDK for Python (Boto) Ini menyediakan antarmuka pemrograman Python ke Amazon SWF.

Untuk menampilkan dokumentasi yang tersedia, lihat halaman boto: Antarmuka Python untuk Amazon Web Services. Anda juga dapat langsung menuju bagian Amazon SWF di dokumentasi dengan mengikuti tautan berikut:

Ruby

AWS SDK for Ruby Ini menyediakan antarmuka pemrograman Ruby ke Amazon SWF.

Untuk menampilkan dokumentasi yang tersedia, lihat halaman Dokumentasi AWS SDK for Ruby. Anda juga dapat langsung menuju bagian Amazon SWF di referensi SDK dengan mengikuti tautan ini:

AWS CLI Dokumentasi

The AWS Command Line Interface (AWS CLI) adalah alat terpadu untuk mengelola AWS layanan Anda. Dengan hanya satu alat untuk mengunduh dan mengkonfigurasi, Anda dapat mengontrol beberapa AWS layanan dari baris perintah dan mengotomatiskannya melalui skrip.

Untuk informasi lebih lanjut tentang AWS CLI, lihat AWS Command Line Interfacehalaman.

Untuk gambaran umum perintah yang tersedia untuk Amazon SWF, lihat swf di Referensi Perintah AWS CLI .

Sumber Daya Web untuk Amazon Simple Workflow Service

Ada sejumlah sumber daya Web yang dapat Anda gunakan untuk mempelajari lebih lanjut tentang Amazon SWF atau untuk mendapatkan bantuan tentang penggunaan layanan dan pengembangan alur kerja.

Forum Amazon SWF

Forum Amazon SWF menyediakan tempat bagi Anda untuk berkomunikasi dengan developer Amazon SWF lainnya dan anggota tim pengembangan Amazon SWF di Amazon untuk mengajukan pertanyaan dan mendapatkan jawaban.

Anda dapat mengunjungi forum di: Forum: Amazon Simple Workflow Service.

FAQ Amazon SWF

FAQ Amazon SWF memberikan jawaban atas pertanyaan yang sering diajukan tentang Amazon SWF, termasuk gambaran umum kasus penggunaan umum, perbedaan antara Amazon SWF dan layanan lainnya, dan sejumlah pertanyaan lain.

Anda dapat mengakses FAQ di sini: FAQ Amazon SWF.

Video Amazon SWF

Saluran Amazon Web Services on YouTube menyediakan pelatihan video untuk semua Layanan Web Amazon, termasuk Amazon SWF. Untuk daftar lengkap video terkait Amazon SWF, gunakan kueri berikut: Alur Kerja Sederhana di Amazon Web Services

Opsi migrasi untuk Ruby Flow

The AWS Flow Framework for Ruby tidak lagi dalam pengembangan aktif. Sementara kode yang ada akan terus bekerja tanpa batas waktu, tidak akan ada fitur atau versi baru. Topik ini akan mencakup opsi penggunaan dan migrasi untuk terus bekerja dengan Amazon SWF, dan informasi tentang cara melakukan migrasi ke Step Functions.

Opsi Deskripsi

Terus menggunakan Ruby Flow Framework

Untuk saat ini, Ruby Flow Framework akan terus bekerja. Jika Anda tidak melakukan apa-apa, kode Anda akan terus berfungsi seperti biasa. Berencana untuk bermigrasi dari AWS Flow Framework Ruby dalam waktu dekat.

Migrasi ke Java Flow Framework

Java Flow Framework tetap berada dalam pengembangan aktif dan akan terus menerima fitur serta update baru.

Migrasi ke Step Functions

Step Functions menyediakan cara untuk mengkoordinasikan komponen aplikasi terdistribusi menggunakan alur kerja visual yang dikendalikan oleh mesin state.

Gunakan API SWF secara langsung, tanpa Flow Framework Anda dapat terus bekerja di Ruby dan menggunakan API SWF secara langsung alih-alh menggunakan Ruby Flow Framework.

Keuntungan yang diberikan Flow Framework, baik Ruby maupun Java, adalah bahwa Framework ini memungkinkan Anda untuk berfokus pada logika alur kerja Anda. Kerangka kerja menangani banyak detail komunikasi dan koordinasi, dan beberapa kompleksitas yang diabstraksikan. Anda dapat terus memiliki tingkat abstraksi yang sama dengan bermigrasi ke Java Flow Framework, atau Anda dapat langsung berinteraksi dengan SDK Amazon SWF secara langsung.

Lanjutkan untuk menggunakan Ruby Flow Framework

The AWS Flow Framework for Ruby akan terus berfungsi seperti sekarang dalam jangka pendek. Jika Anda memiliki alur kerja yang ditulis dalam AWS Flow Framework untuk Ruby, ini akan terus berfungsi. Tanpa pembaruan, dukungan, atau perbaikan keamanan, langkah terbaik adalah dengan memiliki rencana pasti untuk bermigrasi dari AWS Flow Framework untuk Ruby dalam waktu dekat.

Migrasi ke Java Flow Framework

The AWS Flow Framework for Java akan tetap dalam pengembangan aktif. Secara konseptual, AWS Flow Framework untuk Java mirip AWS Flow Framework dengan Ruby: Anda masih dapat fokus pada logika alur kerja Anda, dan kerangka kerja akan membantu mengelola logika penentu Anda, dan akan membuat aspek lain dari Amazon SWF lebih mudah dikelola.

Migrasi ke Step Functions

AWS Step Functions menyediakan layanan yang mirip dengan Amazon SWF, tetapi di mana logika alur kerja Anda dikendalikan oleh mesin status. Step Functions memungkinkan Anda untuk mengkoordinasikan komponen aplikasi dan microservices terdistribusi menggunakan alur kerja visual. Anda membangun aplikasi dari komponen individu yang masing-masing menjalankan fungsi diskrit, atau tugas, memungkinkan Anda untuk menskalakan dan mengubah aplikasi dengan cepat. Step Functions menyediakan cara yang dapat diandalkan untuk mengkoordinasikan komponen dan langkah melalui fungsi aplikasi Anda. Sebuah konsol grafis menyediakan cara untuk memvisualisasikan komponen aplikasi Anda sebagai serangkaian langkah. Konsol ini secara otomatis memicu dan melacak setiap langkah, dan mencoba lagi ketika terdapat kesalahan, sehingga aplikasi Anda melakukan eksekusi secara berurutan dan seperti yang diharapkan, setiap waktu. Step Functions mencatat status setiap langkah, jadi ketika terjadi kesalahan, Anda dapat mendiagnosa dan men-debug masalah dengan cepat.

Dalam Step Functions, Anda mengelola koordinasi tugas Anda menggunakan mesin state, ditulis dalam JSON deklaratif, yang ditentukan menggunakan Bahasa Amazon States. Dengan menggunakan mesin state, Anda tidak harus menulis dan memelihara program decider untuk mengontrol logika aplikasi Anda. Step Functions menyediakan pendekatan intuitif, produktif, dan tangkas untuk mengkoordinasi komponen aplikasi menggunakan alur kerja visual. Anda harus mempertimbangkan AWS Step Functions untuk menggunakan semua aplikasi baru Anda, dan Step Functions menyediakan platform yang sangat baik untuk bermigrasi ke alur kerja yang saat ini telah Anda terapkan di AWS Flow Framework for Ruby.

Untuk membantu memigrasikan tugas Anda ke Step Functions, sambil terus memanfaatkan kemampuan bahasa Ruby Anda, Step Functions menyediakan contoh pekerja aktivitas Ruby. Contoh ini menggunakan praktik terbaik untuk menerapkan pekerja aktivitas, dan dapat digunakan sebagai templat untuk memigrasikan logika tugas Anda ke Step Functions. Untuk informasi lebih lanjut, lihat topik Contoh Pekerja Aktivitas di Ruby di Panduan Developer AWS Step Functions.

catatan

Bagi banyak pelanggan, bermigrasi ke Step Functions dari AWS Flow Framework for Ruby adalah pilihan terbaik. Namun, jika Anda mengharuskan sinyal campur tangan dalam proses Anda, atau jika Anda perlu meluncurkan proses turunan yang mengembalikan hasil ke induk, pertimbangkan untuk menggunakan Amazon SWF API secara langsung, atau bermigrasi ke AWS Flow Framework for Java.

Untuk informasi lebih lanjut tentang AWS Step Functions, lihat:

Gunakan API Amazon SWF secara langsung

Sementara AWS Flow Framework untuk Ruby mengelola beberapa kompleksitas Amazon SWF, Anda juga dapat menggunakan Amazon SWF API secara langsung. Menggunakan API secara langsung memungkinkan Anda untuk membangun alur kerja di mana Anda memiliki kontrol penuh atas pelaksanaan tugas dan pengkoordinasiannya, tanpa khawatir tentang kompleksitas mendasar seperti melacak kemajuan mereka dan mempertahankan keadaan mereka.