Workflows memungkinkan Anda memeriksa output eksekusi, memeriksa status langkah, dan mendiagnosis error runtime. Setelah menjalankan alur kerja, Anda dapat melihat hasil ini di konsol Google Cloud atau menggunakan Google Cloud CLI.
Konsol
Di konsol Google Cloud , buka halaman Workflows.
Untuk mengakses hasil eksekusi alur kerja, klik nama alur kerja untuk membuka halaman Detail alur kerja.
Untuk mengetahui detail tentang eksekusi tertentu, di tab Eksekusi, klik ID eksekusi dalam daftar untuk membuka halaman Detail eksekusi.
Di tab Ringkasan, setiap eksekusi memiliki informasi berikut:
- ID Eksekusi: ID unik eksekusi alur kerja.
- Status eksekusi: menunjukkan status akhir alur kerja, termasuk langkah alur kerja saat ini atau akhir.
- Eksekusi dibuat: saat eksekusi dimulai.
- Mulai eksekusi: saat eksekusi mulai berjalan dan mengeksekusi langkah-langkah.
- Akhir eksekusi: saat eksekusi berakhir.
- Durasi eksekusi: total waktu yang berlalu. Hal ini dapat menjadi indikasi error jaringan atau masalah konektivitas.
- Nama alur kerja: nama alur kerja.
- Revisi alur kerja: revisi saat ini pada saat eksekusi.
- Level log panggilan: level logging panggilan yang diterapkan selama eksekusi. Untuk mengetahui informasi selengkapnya, lihat Logging panggilan.
- Input: argumen runtime yang diteruskan ke alur kerja, jika ada.
- Output: output alur kerja. Jika eksekusi gagal, akan menyertakan pengecualian yang menyebabkan kegagalan eksekusi. Dalam dokumen ini, lihat Peta error eksekusi.
Untuk melihat histori eksekusi alur kerja sebagai daftar entri langkah, klik tab Langkah. Untuk mengetahui informasi selengkapnya, lihat Melihat histori langkah eksekusi.
Untuk melihat log eksekusi alur kerja, klik tab Logs.
Untuk memfilter log eksekusi, gunakan kolom Filter di bagian atas tabel. Misalnya, untuk hanya menampilkan upaya eksekusi yang gagal, masukkan
faileddi kolom teks filter.
gcloud
Untuk melihat daftar lengkap eksekusi alur kerja, masukkan perintah berikut:
gcloud workflows executions list WORKFLOW_NAMEGanti
WORKFLOW_NAMEdengan nama alur kerja Anda. Salin ID eksekusi dari eksekusi yang Anda minati.Untuk melihat log eksekusi alur kerja, masukkan perintah berikut:
gcloud workflows executions describe \ --workflow=WORKFLOW_NAME \ EXECUTION_IDGanti kode berikut:
WORKFLOW_NAME: nama alur kerjaEXECUTION_ID: ID unik eksekusi
Perintah ini menampilkan output yang mirip dengan berikut ini:
Outputnya berisi informasi berikut:argument: 'null' endTime: '2022-07-19T12:40:07.070039707Z' error: context: |- The argument of 'in' must be a dict or an array; got: null in step "checkSearchTermInInput", routine "main", line: 12 payload: "{"message":"The argument of 'in' must be a dict or an array; got: null"
,"tags":["TypeError"]}" stackTrace: elements: - position: column: '26' length: '24' line: '12' routine: main step: checkSearchTermInInput name: projects/1051295516635/locations/us-central1/workflows/myFirstWorkflow/executions/17ffc89c-0a27-4d2f-8356-e681d949a3d3 startTime: '2022-07-19T12:40:07.024823663Z' state: FAILED status: currentSteps: - routine: main step: checkSearchTermInInput workflowRevisionId: 000001-ac2argument: argumen runtime yang diteruskan ke alur kerja, jika adaendTime: saat eksekusi berakhirerror: pesan error yang ditampilkan sebagai bagian dari pengecualian yang mengakibatkan kegagalan eksekusiname: nama lengkap eksekusi, termasuk nama project, lokasi alur kerja, nama alur kerja, dan ID eksekusistartTime: saat eksekusi dimulaistate: menunjukkan status akhir alur kerjastatus: langkah alur kerja saat ini atau terakhir dari eksekusiworkflowRevisionID: revisi saat ini pada saat eksekusi
Peta error eksekusi
Jika alur kerja memunculkan error selama eksekusi yang tidak tertangkap dalam
blok try/except, eksekusi akan gagal, dan peta error (kamus JSON) yang menjelaskan error akan ditampilkan.
Error yang terjadi selama eksekusi alur kerja berisi tag untuk membantu Anda mengidentifikasi penyebab error. Misalnya, error yang ditampilkan dari konektor dapat memiliki dua
kunci (tags dan message) yang mirip dengan berikut:
{'tags': ['SystemError'], 'message': 'an error has occurred'}
Bisa ada lebih dari satu tag. Untuk memeriksa tag tertentu, Anda dapat menggunakan ekspresi. Contoh:
${'SystemError' in e.tags}
Data error akses ditampilkan sebagai string
Beberapa konektor dan API HTTP akan melakukan serialisasi error sebagai string sebelum menampilkan
error. Anda dapat menggunakan fungsi library standar untuk memulihkan payload ke error asli. Misalnya, untuk mengonversi string error menjadi peta, Anda dapat menggunakan fungsi json.decode dan text.encode:
json.decode(text.encode(ERROR_FROM_API))
Tag error
Tabel berikut menjelaskan arti berbagai tag error.
| Tag | Deskripsi |
|---|---|
| AuthError | Dilaporkan saat pembuatan kredensial untuk permintaan HTTP gagal. |
| ConnectionError | Ditimbulkan saat koneksi berhasil dibuat dengan endpoint tetapi ada masalah dengan koneksi selama transfer data. Koneksi dihentikan sebelum respons lengkap diterima dan pesan mungkin belum dikirim ke endpoint. Percobaan ulang mungkin tidak idempoten. |
| ConnectionFailedError | Dimunculkan saat koneksi tidak dibuat dengan endpoint API; misalnya, karena nama domain yang salah, masalah resolusi DNS, atau masalah jaringan lainnya. Percobaan ulang bersifat idempoten. |
| HttpError | Dimunculkan saat
permintaan HTTP gagal
dengan status error HTTP. Saat pengecualian ini terjadi, responsnya adalah peta dengan elemen berikut:
|
| IndexError | Ditampilkan saat subskrip urutan adalah bilangan bulat di luar rentang. |
| KeyError | Ditampilkan saat kunci peta tidak ditemukan dalam set kunci yang ada. |
| OperationError | Ditampilkan saat operasi yang berjalan lama gagal diselesaikan. |
| ParallelNestingError | Muncul saat kedalaman maksimum yang dapat bertingkat untuk langkah paralel terlampaui. |
| RecursionError | Terjadi saat interpreter mendeteksi bahwa kedalaman stack panggilan maksimum terlampaui. |
| ResourceLimitError | Dimunculkan saat batas resource tertentu habis. Jika terjadi secara internal, jenis error ini tidak dapat ditangkap dan menyebabkan kegagalan eksekusi langsung. |
| ResponseTypeError | Dimunculkan saat operasi yang berjalan lama menampilkan respons dengan jenis yang salah. |
| SystemError | Dilaporkan saat interpreter menemukan error internal. |
| TimeoutError | Dimunculkan saat fungsi sistem mengalami waktu tunggu habis di tingkat sistem. |
| TypeError | Dimunculkan saat operasi atau fungsi diterapkan ke objek dengan jenis yang tidak kompatibel. Nilai terkait adalah string yang memberikan detail tentang ketidakcocokan jenis. |
| UnhandledBranchError | Ditampilkan saat satu atau beberapa cabang atau iterasi mengalami error runtime yang tidak tertangani hingga jumlah maksimum. |
| ValueError | Dimunculkan saat operasi atau fungsi menerima argumen yang memiliki
jenis yang benar, tetapi nilai yang salah, dan situasi tersebut tidak dijelaskan
oleh pengecualian yang lebih tepat, seperti IndexError. |
| ZeroDivisionError | Dimunculkan saat argumen kedua dari operasi pembagian atau modulo adalah nol. Nilai terkait adalah string yang menunjukkan jenis operan dan operasi. |
Anda juga dapat memunculkan error kustom
menggunakan sintaksis raise.
Langkah berikutnya
- Ringkasan proses debug
- Masalah umum untuk Workflows
- Mengirim log eksekusi ke Cloud Logging
- Memecahkan masalah