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.
Topik
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:
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. SelaintimeoutType
, atribut kejadian menentukanchildPolicy
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, jikachildPolicy
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 menggunakanRespondDecisionTaskCompleted
akan gagal.
Batas Waktu dalam Tugas Aktivitas
Diagram berikut menunjukkan bagaimana batas waktu terkait dengan masa pakai tugas kegiatan:
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 tindakanRecordActivityTaskHeartbeat
. -
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
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 Interface
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
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 |
---|---|
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. |
|
Java Flow Framework tetap berada dalam pengembangan aktif dan akan terus menerima fitur serta update baru. |
|
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.