Anda dapat mengambil histori eksekusi alur kerja yang ditentukan sebagai daftar entri langkah. Setiap entri langkah memberikan informasi yang dapat membantu Anda saat menganalisis, melakukan proses debug, atau mengoptimalkan alur kerja. Misalnya, Anda dapat mengonfirmasi langkah mana yang benar-benar dijalankan, dan Anda dapat menentukan durasi serta keberhasilan suatu langkah. Hal ini dapat sangat membantu saat men-debug alur kerja non-linear yang besar atau rumit (misalnya, alur kerja dengan banyak cabang paralel).
Entri langkah mewakili langkah sebenarnya dalam kode sumber (misalnya, assign
atau call
) atau blok petunjuk (misalnya, loop for
atau blok try/retry/except
). Untuk daftar lengkap jenis langkah, lihat
StepType.
Cara mengambil entri langkah
Anda dapat mengambil entri langkah dengan mengirim permintaan ke Workflow Executions REST API atau melalui Konsol Google Cloud:
Google Cloud Console—dalam dokumen ini, lihat Melihat entri langkah di konsol.
Selain mencantumkan entri langkah dan detailnya, konsol memberikan representasi grafis dari langkah-langkah eksekusi, sehingga mempermudah untuk melihat dan menganalisis jalur eksekusi alur kerja.
Workflow Executions REST API—dalam dokumen ini, lihat Mengambil entri langkah dan Mencantumkan entri langkah.
Informasi entri langkah
Entri langkah menyertakan informasi berikut. Untuk mengetahui detail selengkapnya, dalam dokumen ini, lihat Contoh.
Nama | Nama resource lengkap entri langkah yang merupakan ID unik dengan format berikut, dan dengan STEPENTRY_ID sebagai penghitung yang meningkat:
|
Membuat dan memperbarui waktu | Stempel waktu untuk waktu pembuatan entri langkah dan pembaruan
terbarunya. Jika entri langkah telah selesai, updateTime akan menunjukkan waktu penyelesaian.
|
Nama langkah dan rutinitas | Nama rutinitas dan langkah yang memiliki entri langkah. Nama rutinitas adalah nama sub-alur kerja yang ditentukan dalam kode sumber YAML atau JSON. Nama rutinitas level teratas adalah main .
|
Status dan jenis progres | Status entri langkah—misalnya, jika entri berhasil atau gagal, atau jika entri langkah sedang berlangsung dan jenis progresnya. Untuk daftar lengkap status dan jenis progres, lihat Status dan ProgressType. |
Informasi navigasi | Posisi entri langkah sehingga Anda dapat lebih memahami hierarki dan alur alur kerja—misalnya, entri langkah apa yang muncul sebelum atau setelah entri langkah saat ini, atau yang merupakan induk atau turunan dari entri langkah. Untuk mengetahui detailnya, lihat NavigationInfo. |
Metadata | Data yang terkait dengan entri langkah berulang, termasuk ID yang menunjukkan thread turunan (misalnya, STEP_PARALLEL_BRANCH_ENTRY mana dalam STEP_PARALLEL_BRANCH ) atau iterasi loop for (misalnya, STEP_FOR_ITERATION dalam STEP_FOR ). Untuk detailnya, lihat StepEntryMetadata.
|
Pengecualian | Payload yang terkait dengan pengecualian apa pun dan yang memberikan deskripsi alasan kegagalan entri langkah. |
Melihat entri langkah di konsol
Anda dapat melihat entri langkah untuk eksekusi alur kerja tertentu di Konsol Google Cloud.
Di konsol Google Cloud, buka halaman Workflows.
Klik nama alur kerja untuk membuka halaman Detail alur kerja.
Untuk mengetahui detail tentang eksekusi tertentu, klik ID eksekusinya.
Pada tab Ringkasan, informasi tentang keseluruhan eksekusi disediakan, termasuk pengecualian yang menyebabkan kegagalan eksekusi. Untuk informasi selengkapnya, lihat Pesan error eksekusi.
Untuk melihat histori eksekusi alur kerja sebagai daftar entri langkah, klik tab Steps.
Semua entri langkah untuk eksekusi alur kerja akan dicantumkan.
Untuk memfilter entri langkah, gunakan kolom Filter di bagian atas tabel untuk memilih properti dan nilai—misalnya,
State: Failed
.Guna menampilkan link untuk entri langkah Parent, Children, Next, dan Previous, klik entri langkah tertentu.
Jika Anda mengklik link, link lainnya akan diperbarui secara otomatis. Misalnya, Induk akan menautkan ke induk entri langkah yang Anda klik.
Panel Visualisasi memberikan representasi grafis dari langkah-langkah dalam alur kerja dan membantu Anda memahami jalur alur kerja.
Perhatikan bahwa visualisasi dapat berbeda dari entri langkah. Misalnya, blok
for
digambarkan sebagai satu komponen dalam visualisasi; namun, bergantung pada jumlah iterasi, mungkin ada beberapa entri langkah.Anda dapat melakukan hal berikut di panel:
- Memperbesar atau memperkecil tampilan visualisasi
- Menciutkan atau meluaskan entri langkah induk
- Klik entri langkah dan lihat entri sebelumnya dan berikutnya
- Konfirmasi entri langkah yang berhasil dan gagal seperti yang ditunjukkan dengan tanda centang hijau atau tanda seru merah
- Tutup panel Visualization dengan mengklik panah peluas ; klik lagi untuk membuka panel
Sebelum Anda mengambil entri langkah
Untuk mendapatkan izin yang diperlukan untuk mengambil entri langkah,
minta administrator untuk memberi Anda peran IAM
Workflows Admin (workflows.stepEntries.get
)
pada project Anda.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Mengambil entri langkah
Untuk mengambil entri langkah untuk eksekusi alur kerja tertentu, gunakan
metode
projects.locations.workflows.executions.stepEntries.get
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_NUMBER
: nomor project Google Cloud Anda yang tercantum di halaman IAM & Admin Settings.LOCATION
: region tempat alur kerja di-deploy—misalnya,us-central1
.WORKFLOW_ID
: nama yang ditetapkan pengguna untuk alur kerja—misalnya,myFirstWorkflow
.EXECUTION_ID
: ID unik untuk eksekusi alur kerja yang ditampilkan setelah alur kerja dijalankan.STEPENTRY_ID
: ID unik untuk entri langkah—misalnya,1
.
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_ID/executions/EXECUTION_ID/stepEntries/STEPENTRY_ID", "createTime": "2023-10-19T13:49:56.522717646Z", "updateTime": "2023-10-19T13:49:56.525439354Z", "routine": "main", "step": "checkSearchTermInInput", "stepType": "STEP_CONDITION", "state": "STATE_SUCCEEDED", "entryId": "2", "navigationInfo": { "children": [ "3" ], "parent": "1", "next": "3", "previous": "1" } }
Sebelum Anda mencantumkan entri langkah
Untuk mendapatkan izin yang Anda perlukan untuk mencantumkan entri langkah,
minta administrator untuk memberi Anda peran IAM
Workflows Admin (workflows.stepEntries.list
)
pada project Anda.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Mencantumkan entri langkah
Guna mencantumkan entri langkah untuk eksekusi alur kerja tertentu, gunakan
metode
projects.locations.workflows.executions.stepEntries.list
. Secara default, hasil ditampilkan dalam urutan menaik dari createTime
entri langkah.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_NUMBER
: nomor project Google Cloud Anda yang tercantum di halaman IAM & Admin Settings.LOCATION
: region tempat alur kerja di-deploy—misalnya,us-central1
.WORKFLOW_ID
: nama yang ditetapkan pengguna untuk alur kerja—misalnya,myFirstWorkflow
.EXECUTION_ID
: ID unik untuk eksekusi alur kerja yang ditampilkan setelah alur kerja dijalankan.
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "stepEntries": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_ID/executions/EXECUTION_ID/stepEntries/1", "createTime": "2023-10-19T13:49:56.522705770Z", "updateTime": "2023-10-19T13:49:56.525439429Z", "routine": "main", "step": "checkSearchTermInInput", "stepType": "STEP_SWITCH", "state": "STATE_SUCCEEDED", "entryId": "1", "navigationInfo": { "children": [ "2" ], "next": "2" } }, { "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_ID/executions/EXECUTION_ID/stepEntries/2", "createTime": "2023-10-19T13:49:56.522717646Z", "updateTime": "2023-10-19T13:49:56.525439354Z", "routine": "main", "step": "checkSearchTermInInput", "stepType": "STEP_CONDITION", "state": "STATE_SUCCEEDED", "entryId": "2", "navigationInfo": { "children": [ "3" ], "parent": "1", "next": "3", "previous": "1" } }, { "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_ID/executions/EXECUTION_ID/stepEntries/3", "createTime": "2023-10-19T13:49:56.525379814Z", "updateTime": "2023-10-19T13:49:56.525439285Z", "routine": "main", "step": "checkSearchTermInInput.condition1", "stepType": "STEP_ASSIGN", "state": "STATE_SUCCEEDED", "entryId": "3", "navigationInfo": { "parent": "2", "next": "4", "previous": "2" } }, { "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_ID/executions/EXECUTION_ID/stepEntries/4", "createTime": "2023-10-19T13:49:56.525440360Z", "updateTime": "2023-10-19T13:49:56.716973793Z", "routine": "main", "step": "readWikipedia", "stepType": "STEP_CALL", "state": "STATE_SUCCEEDED", "entryId": "4", "navigationInfo": { "next": "5", "previous": "3" } }, { "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_ID/executions/EXECUTION_ID/stepEntries/5", "createTime": "2023-10-19T13:49:56.717263008Z", "updateTime": "2023-10-19T13:49:56.717353199Z", "routine": "main", "step": "returnOutput", "stepType": "STEP_RETURN", "state": "STATE_SUCCEEDED", "entryId": "5", "navigationInfo": { "previous": "4" } } ], "totalSize": 5 }
Contoh
Alur kerja dengan blok for
Alur kerja
YAML
- assignStep: assign: - sum: 0 - forStep: for: range: [1, 2] value: v steps: - sumStep: assign: - sum: ${sum + v} - returnStep: return: ${sum}
JSON
[ { "assignStep": { "assign": [ { "sum": 0 } ] } }, { "forStep": { "for": { "range": [ 1, 2 ], "value": "v", "steps": [ { "sumStep": { "assign": [ { "sum": "${sum + v}" } ] } } ] } } }, { "returnStep": { "return": "${sum}" } } ]
Diagram
Entri langkah
{ "stepEntries": [ { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/74785b43-5b9f-4adf-bde7-a9880d0e100a/stepEntries/1", "createTime": "2023-10-20T17:19:37.889232683Z", "updateTime": "2023-10-20T17:19:37.889275457Z", "routine": "main", "step": "assignStep", "stepType": "STEP_ASSIGN", "state": "STATE_SUCCEEDED", "entryId": "1", "navigationInfo": { "next": "2" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/74785b43-5b9f-4adf-bde7-a9880d0e100a/stepEntries/2", "createTime": "2023-10-20T17:19:37.889276124Z", "updateTime": "2023-10-20T17:19:37.889474759Z", "routine": "main", "step": "forStep", "stepType": "STEP_FOR", "state": "STATE_SUCCEEDED", "entryId": "2", "navigationInfo": { "children": [ "3", "5" ], "next": "3", "previous": "1" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/74785b43-5b9f-4adf-bde7-a9880d0e100a/stepEntries/3", "createTime": "2023-10-20T17:19:37.889313107Z", "updateTime": "2023-10-20T17:19:37.889382353Z", "routine": "main", "step": "forStep", "stepType": "STEP_FOR_ITERATION", "state": "STATE_SUCCEEDED", "entryId": "3", "navigationInfo": { "children": [ "4" ], "parent": "2", "next": "4", "previous": "2" }, "stepEntryMetadata": { "progressType": "PROGRESS_TYPE_FOR", "progressNumber": "1" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/74785b43-5b9f-4adf-bde7-a9880d0e100a/stepEntries/4", "createTime": "2023-10-20T17:19:37.889317653Z", "updateTime": "2023-10-20T17:19:37.889382265Z", "routine": "main", "step": "sumStep", "stepType": "STEP_ASSIGN", "state": "STATE_SUCCEEDED", "entryId": "4", "navigationInfo": { "parent": "3", "next": "5", "previous": "3" }, "stepEntryMetadata": { "progressType": "PROGRESS_TYPE_FOR", "progressNumber": "1" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/74785b43-5b9f-4adf-bde7-a9880d0e100a/stepEntries/5", "createTime": "2023-10-20T17:19:37.889383134Z", "updateTime": "2023-10-20T17:19:37.889474707Z", "routine": "main", "step": "forStep", "stepType": "STEP_FOR_ITERATION", "state": "STATE_SUCCEEDED", "entryId": "5", "navigationInfo": { "children": [ "6" ], "parent": "2", "next": "6", "previous": "4" }, "stepEntryMetadata": { "progressType": "PROGRESS_TYPE_FOR", "progressNumber": "2" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/74785b43-5b9f-4adf-bde7-a9880d0e100a/stepEntries/6", "createTime": "2023-10-20T17:19:37.889384893Z", "updateTime": "2023-10-20T17:19:37.889474649Z", "routine": "main", "step": "sumStep", "stepType": "STEP_ASSIGN", "state": "STATE_SUCCEEDED", "entryId": "6", "navigationInfo": { "parent": "5", "next": "7", "previous": "5" }, "stepEntryMetadata": { "progressType": "PROGRESS_TYPE_FOR", "progressNumber": "2" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/74785b43-5b9f-4adf-bde7-a9880d0e100a/stepEntries/7", "createTime": "2023-10-20T17:19:37.889475882Z", "updateTime": "2023-10-20T17:19:37.889483477Z", "routine": "main", "step": "returnStep", "stepType": "STEP_RETURN", "state": "STATE_SUCCEEDED", "entryId": "7", "navigationInfo": { "previous": "6" } } ], "totalSize": 7 }
Alur kerja dengan panggilan subalur kerja
Alur kerja
YAML
main: steps: - callStep: call: square args: x: 10 result: t - retStep: return: ${t} square: params: [x] steps: - assignStep: assign: - y: ${x*x} - retStep: return: ${y}
JSON
{ "main": { "steps": [ { "callStep": { "call": "square", "args": { "x": 10 }, "result": "t" } }, { "retStep": { "return": "${t}" } } ] }, "square": { "params": [ "x" ], "steps": [ { "assignStep": { "assign": [ { "y": "${x*x}" } ] } }, { "retStep": { "return": "${y}" } } ] } }
Diagram
Entri langkah
{ "stepEntries": [ { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/69da2159-1039-4f88-8d8a-12baf398f372/stepEntries/1", "createTime": "2023-10-21T15:25:55.406007695Z", "updateTime": "2023-10-21T15:25:55.412984492Z", "routine": "main", "step": "callStep", "stepType": "STEP_CALL", "state": "STATE_SUCCEEDED", "entryId": "1", "navigationInfo": { "children": [ "2", "3" ], "next": "2" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/69da2159-1039-4f88-8d8a-12baf398f372/stepEntries/2", "createTime": "2023-10-21T15:25:55.412921902Z", "updateTime": "2023-10-21T15:25:55.412967631Z", "routine": "square", "step": "assignStep", "stepType": "STEP_ASSIGN", "state": "STATE_SUCCEEDED", "entryId": "2", "navigationInfo": { "parent": "1", "next": "3", "previous": "1" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/69da2159-1039-4f88-8d8a-12baf398f372/stepEntries/3", "createTime": "2023-10-21T15:25:55.412968712Z", "updateTime": "2023-10-21T15:25:55.412978913Z", "routine": "square", "step": "retStep", "stepType": "STEP_RETURN", "state": "STATE_SUCCEEDED", "entryId": "3", "navigationInfo": { "parent": "1", "next": "4", "previous": "2" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/69da2159-1039-4f88-8d8a-12baf398f372/stepEntries/4", "createTime": "2023-10-21T15:25:55.412992302Z", "updateTime": "2023-10-21T15:25:55.412998396Z", "routine": "main", "step": "retStep", "stepType": "STEP_RETURN", "state": "STATE_SUCCEEDED", "entryId": "4", "navigationInfo": { "previous": "3" } } ], "totalSize": 4 }
Alur kerja dengan entri langkah yang gagal
Alur kerja
YAML
- tryStep: try: return: ${1 / 0} except: return: 0
JSON
[ { "tryStep": { "try": { "return": "${1 / 0}" }, "except": { "return": 0 } } } ]
Diagram
Entri langkah
{ "stepEntries": [ { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/8ec49dae-ab0c-4b55-b1c4-b809244be913/stepEntries/1", "createTime": "2023-10-20T18:06:50.395938752Z", "updateTime": "2023-10-20T18:06:50.396525946Z", "routine": "main", "step": "tryStep", "stepType": "STEP_TRY_RETRY_EXCEPT", "state": "STATE_SUCCEEDED", "entryId": "1", "navigationInfo": { "children": [ "2", "4" ], "next": "2" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/8ec49dae-ab0c-4b55-b1c4-b809244be913/stepEntries/2", "createTime": "2023-10-20T18:06:50.395942598Z", "updateTime": "2023-10-20T18:06:50.396497992Z", "routine": "main", "step": "tryStep", "stepType": "STEP_TRY", "state": "STATE_FAILED", "entryId": "2", "navigationInfo": { "children": [ "3" ], "parent": "1", "next": "3", "previous": "1" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/8ec49dae-ab0c-4b55-b1c4-b809244be913/stepEntries/3", "createTime": "2023-10-20T18:06:50.395944871Z", "updateTime": "2023-10-20T18:06:50.396497499Z", "routine": "main", "step": "tryStep.try", "stepType": "STEP_RETURN", "state": "STATE_FAILED", "exception": { "payload": "{\"message\":\"ZeroDivisionError: division by zero\",\"tags\":[\"ZeroDivisionError\",\"ArithmeticError\"]}" }, "entryId": "3", "navigationInfo": { "parent": "2", "next": "4", "previous": "2" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/8ec49dae-ab0c-4b55-b1c4-b809244be913/stepEntries/4", "createTime": "2023-10-20T18:06:50.396506860Z", "updateTime": "2023-10-20T18:06:50.396525900Z", "routine": "main", "step": "tryStep", "stepType": "STEP_EXCEPT", "state": "STATE_SUCCEEDED", "entryId": "4", "navigationInfo": { "children": [ "5" ], "parent": "1", "next": "5", "previous": "3" } }, { "name": "projects/200478149810/locations/us-central1/workflows/ck-for-block/executions/8ec49dae-ab0c-4b55-b1c4-b809244be913/stepEntries/5", "createTime": "2023-10-20T18:06:50.396516994Z", "updateTime": "2023-10-20T18:06:50.396525818Z", "routine": "main", "step": "tryStep.except", "stepType": "STEP_RETURN", "state": "STATE_SUCCEEDED", "entryId": "5", "navigationInfo": { "parent": "4", "previous": "4" } } ], "totalSize": 5 }