Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memperbaiki dan melanjutkan alur kerja
Jika satu atau beberapa simpul (tugas atau crawler) dalam sebuah alur kerja tidak berhasil selesai, ini berarti bahwa alur kerja hanya dieksekusi sebagian. Setelah Anda menemukan akar penyebab dan melakukan koreksi, Anda dapat memilih satu atau beberapa simpul sebagai tempat melanjutkan eksekusi alur kerja, dan kemudian melanjutkan eksekusi alur kerja. Simpul yang dipilih dan semua simpul yang menjadi hilir dari simpul tersebut kemudian dijalankan.
Topik
Melanjutkan alur kerja: Cara kerjanya
Perhatikan alur kerja W1 dalam diagram berikut.
Eksekusi alur kerja dilanjutkan sebagai berikut:
-
Pemicu T1 memulai tugas J1.
-
Keberhasilan penyelesaian J1 mengaktifkan pemicu T2 dan T3, yang masing-masing menjalankan tugas J2 dan J3.
-
Tugas J2 dan J3 gagal.
-
Pemicu T4 dan T5 tergantung pada keberhasilan penyelesaian J2 dan J3, sehingga pemicu tersebut tidak aktif, dan tugas J4 dan J5 tidak berjalan. Alur kerja W1 hanya dieksekusi sebagian.
Sekarang, anggap bahwa masalah-masalah yang menyebabkan J2 dan J3 gagal diperbaiki. J2 dan J3 dipilih sebagai titik awal untuk melanjutkan eksekusi alur kerja.
Eksekusi alur kerja berjalan kembali seperti berikut ini:
-
Tugas J2 dan J3 berjalan dengan sukses.
-
Pemicu T4 dan T5 aktif.
-
Tugas J4 dan J5 berjalan dengan sukses.
Eksekusi alur kerja yang dilanjutkan dilacak sebagai alur kerja terpisah yang dijalankan dengan ID eksekusi baru. Ketika Anda melihat riwayat alur kerja, Anda dapat melihat ID eksekusi sebelumnya untuk setiap eksekusi alur kerja. Dalam contoh pada tangkapan layar berikut, eksekusi alur kerja dengan ID eksekusi wr_c7a22...
(baris kedua) mempunyai simpul yang tidak lengkap. Pengguna memperbaiki masalah dan melanjutkan eksekusi alur kerja, yang menghasilkan ID eksekusi wr_a07e55...
(baris pertama).
catatan
Untuk sisa pembahasan ini, istilah "eksekusi alur kerja yang dilanjutkan" mengacu pada alur kerja yang dibuat ketika eksekusi alur kerja sebelumnya dilanjutkan. "Eksekusi alur kerja asli" mengacu pada eksekusi alur kerja yang hanya dieksekusi sebagian dan perlu dilanjutkan.
Grafik lari alur kerja yang dilanjutkan
Dalam eksekusi alur kerja yang dilanjutkan, meskipun hanya satu subset dari simpul yang dijalankan, tetapi grafik eksekusi adalah sebuah grafik yang lengkap. Artinya, simpul yang tidak dijalankan di alur kerja yang dilanjutkan disalin dari grafik eksekusi dari eksekusi alur kerja asli. Simpul tugas dan crawler yang disalin yang berjalan di eksekusi alur kerja asli mencakup detail eksekusi.
Pertimbangkan lagi alur kerja W1 pada diagram sebelumnya. Ketika eksekusi alur kerja yang dilanjutkan memulai dengan J2 dan J3, grafik eksekusi untuk eksekusi alur kerja yang dilanjutkan menunjukkan semua tugas, J1 hingga J5, dan semua pemicu, T1 hingga T5. Detail eksekusi untuk J1 disalin dari eksekusi alur kerja asli.
Alur kerja menjalankan snapshot
Ketika eksekusi alur kerja dimulai, AWS Glue mengambil snapshot dari grafik desain alur kerja pada saat itu. Snapshot yang digunakan di sepanjang eksekusi alur kerja. Jika Anda membuat perubahan pada pemicu setelah eksekusi dimulai, perubahan tersebut tidak akan mempengaruhi eksekusi alur kerja saat ini. Snapshot memastikan bahwa eksekusi alur kerja berjalan dengan cara yang konsisten.
Snapshot hanya membuat pemicu tetap. Perubahan yang Anda buat untuk tugas dan crawler hilir selama eksekusi alur kerja berlaku untuk eksekusi saat ini.
Melanjutkan alur kerja
Ikuti langkah-langkah ini untuk melanjutkan sebuah eksekusi alur kerja. Anda dapat melanjutkan eksekusi alur kerja dengan menggunakan konsol AWS Glue, API, atau AWS Command Line Interface (AWS CLI).
Untuk melanjutkan sebuah eksekusi alur kerja (konsol)
-
Buka konsol AWS Glue di https://console.aws.amazon.com/glue/
. Masuk sebagai pengguna yang memiliki izin untuk melihat alur kerja dan melanjutkan eksekusi alur kerja.
catatan
Untuk melanjutkan eksekusi alur kerja, Anda memerlukan izin AWS Identity and Access Management (IAM)
glue:ResumeWorkflowRun
. -
Di panel navigasi, pilih Alur Kerja.
-
Pilih alur kerja, lalu pilih tab Riwayat.
-
Pilih eksekusi alur kerja yang hanya dieksekusi sebagian, dan kemudian pilih Lihat detail eksekusi.
-
Dalam grafik eksekusi, pilih simpul pertama (atau satu-satunya) yang ingin Anda mulai ulang dan yang ingin Anda jadikan tempat di mana eksekusi alur kerja dilanjutkan.
-
Di panel detail di sebelah kanan grafik, pilih kotak centang Lanjutkan.
Simpul berubah warna dan menunjukkan ikon resume kecil di kanan atas.
-
Selesaikan dua langkah sebelumnya untuk setiap simpul tambahan untuk memulai ulang.
-
Pilih Lanjutkan eksekusi.
Untuk melanjutkan sebuah eksekusi alur kerja (AWS CLI)
-
Pastikan bahwa Anda memiliki Izin IAM
glue:ResumeWorkflowRun
. -
Mengambil ID simpul untuk simpul yang ingin Anda mulai ulang.
-
Jalankan perintah
get-workflow-run
untuk eksekusi alur kerja asli. Berikan nama alur kerja dan ID eksekusi, dan tambahkan opsi--include-graph
, seperti yang ditunjukkan dalam contoh berikut. Dapatkan ID eksekusi dari tab Riwayat pada konsol, atau dengan menjalankan perintahget-workflow
.aws glue get-workflow-run --name cloudtrailtest1 --run-id wr_a07e55f2087afdd415a404403f644a4265278f68b13ba3da08c71924ebe3c3a8 --include-graph
Perintah tersebut akan mengembalikan simpul dan edge dari grafik tersebut sebagai objek JSON besar.
-
Cari simpul yang menarik berdasarkan properti
Type
danName
dari objek simpul tersebut.Berikut ini adalah sebuah simpul objek contoh dari output.
{ "Type": "JOB", "Name": "test1_post_failure_4592978", "UniqueId": "wnode_d1b2563c503078b153142ee76ce545fe5ceef66e053628a786ddd74a05da86fd", "JobDetails": { "JobRuns": [ { "Id": "jr_690b9f7fc5cb399204bc542c6c956f39934496a5d665a42de891e5b01f59e613", "Attempt": 0, "TriggerName": "test1_aggregate_failure_649b2432", "JobName": "test1_post_failure_4592978", "StartedOn": 1595358275.375, "LastModifiedOn": 1595358298.785, "CompletedOn": 1595358298.785, "JobRunState": "FAILED", "PredecessorRuns": [], "AllocatedCapacity": 0, "ExecutionTime": 16, "Timeout": 2880, "MaxCapacity": 0.0625, "LogGroupName": "/aws-glue/python-jobs" } ] } }
-
Dapatkan ID simpul dari properti
UniqueId
dari objek simpul tersebut.
-
-
Jalankan perintah
resume-workflow-run
. Berikan nama alur kerja, ID eksekusi, dan daftar ID simpul yang dipisahkan oleh spasi, seperti yang ditunjukkan dalam contoh berikut.aws glue resume-workflow-run --name cloudtrailtest1 --run-id wr_a07e55f2087afdd415a404403f644a4265278f68b13ba3da08c71924ebe3c3a8 --node-ids wnode_ca1f63e918fb855e063aed2f42ec5762ccf71b80082ae2eb5daeb8052442f2f3 wnode_d1b2563c503078b153142ee76ce545fe5ceef66e053628a786ddd74a05da86fd
Perintah tersebut menghasilkan output ID eksekusi dari eksekusi alur kerja (baru) yang dilanjutkan dan daftar simpul yang akan dimulai.
{ "RunId": "wr_2ada0d3209a262fc1156e4291134b3bd643491bcfb0ceead30bd3e4efac24de9", "NodeIds": [ "wnode_ca1f63e918fb855e063aed2f42ec5762ccf71b80082ae2eb5daeb8052442f2f3" ] }
Perhatikan bahwa meskipun contoh perintah
resume-workflow-run
mencantumkan dua simpul untuk memulai ulang, contoh output menunjukkan bahwa hanya satu simpul yang akan dimulai ulang. Hal ini karena satu simpul merupakan hilir dari simpul yang lain, dan simpul hilir bagaimanapun akan dimulai ulang oleh alur normal dari alur kerja tersebut.
Catatan dan batasan untuk melanjutkan alur kerja berjalan
Simpan catatan dan batasan berikut ini saat melanjutkan eksekusi alur kerja.
-
Anda dapat melanjutkan eksekusi alur kerja hanya jika alur kerja tersebut dalam status
COMPLETED
.catatan
Bahkan jika satu simpul atau beberapa simpul dalam eksekusi alur kerja tidak selesai, status eksekusi alur kerja ditampilkan sebagai
COMPLETED
. Pastikan untuk memeriksa grafik eksekusi untuk menemukan simpul yang tidak berhasil diselesaikan. -
Anda dapat melanjutkan eksekusi alur kerja dari setiap simpul tugas atau crawler yang berusaha dijalankan oleh eksekusi alur kerja asli. Anda tidak dapat melanjutkan eksekusi alur kerja dari sebuah simpul pemicu.
-
Memulai ulang simpul tidak akan me-reset statusnya. Setiap data yang diproses sebagian tidak akan dicabut.
-
Anda dapat melanjutkan eksekusi alur kerja yang sama beberapa kali. Jika eksekusi alur kerja yang dilanjutkan hanya dieksekusi sebagian, Anda dapat mengatasi masalah dan melanjutkan eksekusi yang dilanjutkan tersebut.
-
Jika Anda memilih dua simpul untuk memulai ulang dan mereka bergantung satu sama lain, maka simpul hulu akan dijalankan sebelum simpul hilir. Bahkan, memilih simpul hilir adalah sebuah redundansi, karena simpul hilir akan dieksekusi sesuai dengan alur normal dari alur kerja tersebut.