Anda dapat mengambil histori eksekusi alur kerja yang ditentukan sebagai daftar entri langkah. Setiap entri langkah memberikan informasi yang dapat membantu Anda saat menganalisis, men-debug, atau mengoptimalkan alur kerja. Misalnya, Anda dapat mengonfirmasi langkah mana yang benar-benar dijalankan, dan Anda dapat menentukan durasi dan 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 mengetahui daftar lengkap jenis langkah, lihat
StepType.
Cara mengambil entri langkah
Anda dapat mengambil entri langkah dengan mengirimkan permintaan ke Workflow Executions REST API atau melalui konsol Google Cloud:
Konsol Google Cloud—dalam dokumen ini, lihat Melihat entri langkah di konsol.
Selain mencantumkan entri langkah dan detailnya, konsol memberikan representasi grafis langkah-langkah eksekusi, sehingga memudahkan 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 mencakup 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 adalah
penghitung yang bertambah:
|
Membuat dan memperbarui waktu | Stempel waktu untuk waktu pembuatan entri langkah dan update terbarunya. Jika entri langkah telah selesai, updateTime menunjukkan
waktu penyelesaian.
|
Nama rutinitas dan langkah | Nama rutinitas dan langkah yang menjadi bagian dari entri langkah. Nama rutinitas adalah nama subalur kerja yang ditentukan dalam kode sumber YAML atau JSON. Nama rutinitas tingkat teratas adalah main .
|
Jenis status dan progres | Status entri langkah—misalnya, apakah entri berhasil atau gagal, atau apakah entri langkah sedang berlangsung dan jenis progresnya. Untuk mengetahui daftar lengkap status dan jenis progres, lihat State 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 iteratif, termasuk ID yang
menunjukkan thread turunan (misalnya,
STEP_PARALLEL_BRANCH_ENTRY di
STEP_PARALLEL_BRANCH ) atau iterasi loop for (misalnya, STEP_FOR_ITERATION di
STEP_FOR ). Untuk mengetahui detailnya, lihat
StepEntryMetadata.
|
Pengecualian | Payload yang terkait dengan pengecualian dan memberikan deskripsi alasan entri langkah gagal. |
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 eksekusi.
Di tab Ringkasan, informasi tentang keseluruhan eksekusi diberikan, termasuk pengecualian yang menyebabkan kegagalan eksekusi. Untuk mengetahui informasi selengkapnya, lihat Peta error eksekusi.
Untuk melihat histori eksekusi alur kerja sebagai daftar entri langkah, klik tab Steps.
Semua entri langkah untuk eksekusi alur kerja tercantum.
Untuk memfilter entri langkah, gunakan kolom Filter di bagian atas tabel untuk memilih properti dan nilai—misalnya,
State: Failed
.Untuk menampilkan link untuk entri langkah Induk, Turunan, Berikutnya, dan Sebelumnya, klik entri langkah tertentu.
Jika Anda mengklik link, link lainnya akan otomatis diperbarui. Misalnya, Induk akan ditautkan 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; tetapi, bergantung pada jumlah iterasi, mungkin ada beberapa entri langkah.Anda dapat melakukan hal berikut di panel:
- Memperbesar atau memperkecil 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 oleh tanda centang hijau atau tanda seru merah
- Tutup panel Visualisasi dengan mengklik tanda panah peluas ; klik lagi untuk membuka panel
Sebelum mengambil entri langkah
Untuk mendapatkan izin yang diperlukan guna mengambil entri langkah,
minta administrator untuk memberi Anda
peran IAM Admin Alur Kerja (workflows.stepEntries.get
)
di project Anda.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
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 ditentukan pengguna untuk alur kerja—misalnya,myFirstWorkflow
.EXECUTION_ID
: ID unik untuk eksekusi alur kerja yang ditampilkan setelah alur kerja dieksekusi.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 diperlukan guna mencantumkan entri langkah,
minta administrator untuk memberi Anda
peran IAM Admin Alur Kerja (workflows.stepEntries.list
)
di project Anda.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Mencantumkan entri langkah
Untuk 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 ditentukan pengguna untuk alur kerja—misalnya,myFirstWorkflow
.EXECUTION_ID
: ID unik untuk eksekusi alur kerja yang ditampilkan setelah alur kerja dieksekusi.
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 }