

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
<a name="resuming-workflow"></a>

 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.

**Topics**
+ [Melanjutkan alur kerja: Cara kerjanya](#resume-workflow-howitworks)
+ [Melanjutkan alur kerja](#how-to-resume-workflow)
+ [Catatan dan batasan untuk melanjutkan alur kerja berjalan](#resume-workflow-notes)

## Melanjutkan alur kerja: Cara kerjanya
<a name="resume-workflow-howitworks"></a>

Perhatikan alur kerja W1 dalam diagram berikut.

![\[Pemicu ditunjukkan dalam persegi panjang dan tugas ditunjukkan dalam lingkaran. Pemicu T1 di sebelah kiri memulai alur kerja dengan menjalankan tugas J1. Pemicu dan tugas berikutnya ada, tetapi tugas J2 dan J3 gagal, sehingga pemicu hilir dan tugas ditampilkan sebagai tidak berjalan.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/workflow_W1.png)


Eksekusi alur kerja dilanjutkan sebagai berikut:

1. Pemicu T1 memulai tugas J1.

1. Keberhasilan penyelesaian J1 mengaktifkan pemicu T2 dan T3, yang masing-masing menjalankan tugas J2 dan J3.

1. Tugas J2 dan J3 gagal.

1. 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.

![\[Tugas J2 dan J3 diberi bendera sebagai simpul yang akan dilanjutkan. Pemicu dan tugas hilir ditunjukkan sebagai berhasil dijalankan.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/workflow_W1_resumed.png)


Eksekusi alur kerja berjalan kembali seperti berikut ini:

1. Tugas J2 dan J3 berjalan dengan sukses.

1. Pemicu T4 dan T5 aktif.

1. 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).

![\[Tabel pada tab Riwayat untuk sebuah alur kerja berisi dua baris, satu baris untuk masing-masing eksekusi alur kerja. Baris pertama memiliki ID eksekusi dan ID eksekusi sebelumnya. Baris kedua hanya memiliki sebuah ID eksekusi. ID eksekusi sebelumnya pada baris pertama adalah sama dengan ID eksekusi di baris ke-2.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/previous-run-id.png)


**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
<a name="how-to-resume-workflow"></a>

Ikuti langkah-langkah ini untuk melanjutkan sebuah eksekusi alur kerja. Anda dapat melanjutkan alur kerja yang dijalankan menggunakan AWS Glue konsol, API, atau AWS Command Line Interface (AWS CLI).

**Untuk melanjutkan sebuah eksekusi alur kerja (konsol)**

1. Buka AWS Glue konsol di [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

   Masuk sebagai pengguna yang memiliki izin untuk melihat alur kerja dan melanjutkan eksekusi alur kerja.
**catatan**  
Untuk melanjutkan alur kerja berjalan, Anda memerlukan izin `glue:ResumeWorkflowRun` AWS Identity and Access Management (IAM).

1. Di panel navigasi, pilih **Alur Kerja**.

1. Pilih alur kerja, lalu pilih tab **Riwayat**.

1. Pilih eksekusi alur kerja yang hanya dieksekusi sebagian, dan kemudian pilih **Lihat detail eksekusi**.

1. 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.

1. Di panel detail di sebelah kanan grafik, pilih kotak centang **Lanjutkan**.  
![\[Grafik eksekusi menunjukkan tiga simpul, termasuk simpul tugas gagal. Panel detail tugas di sebelah kanan mencakup kotak centang Lanjutkan.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/workflow-pre-select-resume.png)

   Simpul berubah warna dan menunjukkan ikon resume kecil di kanan atas.  
![\[Perubahan grafik eksekusi dijelaskan dalam teks. Kotak centang Lanjutkan dipilih.\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/images/workflow-post-select-resume.png)

1. Selesaikan dua langkah sebelumnya untuk setiap simpul tambahan untuk memulai ulang.

1. Pilih **Lanjutkan eksekusi**.

**Untuk melanjutkan sebuah eksekusi alur kerja (AWS CLI)**

1. Pastikan bahwa Anda memiliki Izin IAM `glue:ResumeWorkflowRun`.

1. Ambil node IDs untuk node yang ingin Anda restart.

   1.  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 perintah `get-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.

   1. Cari simpul yang menarik berdasarkan properti `Type` dan `Name` 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"
                  }
              ]
          }
      }
      ```

   1. Dapatkan ID simpul dari properti `UniqueId` dari objek simpul tersebut.

1. Jalankan perintah `resume-workflow-run`. Berikan nama alur kerja, jalankan ID, dan daftar node IDs dipisahkan oleh spasi, seperti yang ditunjukkan pada 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
<a name="resume-workflow-notes"></a>

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 alur kerja yang gagal beberapa kali. Namun, lari yang dilanjutkan hanya dapat dilanjutkan sekali lagi. Untuk percobaan ulang tambahan, lanjutkan proses gagal asli
+ 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.