Setelah menjalankan alur kerja, Anda dapat mengakses hasil eksekusi alur kerja 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 eksekusi tertentu, pada tab Executions, klik ID eksekusi dalam daftar untuk membuka halaman Execution details.
Pada 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.
- Awal 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 informasi selengkapnya, lihat Logging panggilan.
- Input: argumen runtime yang diteruskan ke alur kerja, jika ada.
- Output: output alur kerja. Jika eksekusi gagal, sertakan pengecualian yang menyebabkan kegagalan eksekusi. Dalam dokumen ini, lihat Peta error eksekusi.
Untuk melihat histori eksekusi alur kerja sebagai daftar entri langkah, klik tab Steps. 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
failed
di kolom teks filter.
gcloud
Untuk melihat daftar lengkap eksekusi alur kerja, masukkan perintah berikut:
gcloud workflows executions list WORKFLOW_NAME
Ganti
WORKFLOW_NAME
dengan 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_ID
Ganti kode berikut:
WORKFLOW_NAME
: nama alur kerjaEXECUTION_ID
: ID unik eksekusi
Perintah ini menampilkan output yang mirip dengan berikut ini:
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 akhir dari eksekusiworkflowRevisionID
: revisi saat ini pada saat eksekusi
Peta error eksekusi
Jika alur kerja menampilkan 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 ditampilkan selama eksekusi alur kerja berisi tag untuk membantu Anda mengidentifikasi hal yang menyebabkan error. Misalnya, error yang ditampilkan dari konektor dapat memiliki dua kunci (tags
dan message
) yang mirip dengan berikut ini:
{'tags': ['SystemError'], 'message': 'an error has occurred'}
Bisa lebih dari satu tag. Untuk memeriksa tag tertentu, Anda dapat menggunakan ekspresi. Contoh:
${'SystemError' in e.tags}
Data error akses yang 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 | Dimunculkan saat pembuatan kredensial untuk permintaan HTTP gagal. |
ConnectionError | Dimunculkan 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 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 diangkat, 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 kumpulan kunci yang ada. |
OperationError | Dimunculkan saat operasi yang berjalan lama tidak berhasil diselesaikan. |
ParallelNestingError | Dimunculkan saat kedalaman maksimum yang dapat disusun bertingkat oleh langkah paralel terlampaui. |
RecursionError | Dimunculkan saat penafsir mendeteksi bahwa kedalaman tumpukan panggilan maksimum terlampaui. |
ResourceLimitError | Dimunculkan saat beberapa batas resource habis. Jika ditampilkan 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 | Dimunculkan saat penafsir menemukan error internal. |
TimeoutError | Dimunculkan saat waktu tunggu fungsi sistem habis di tingkat sistem. |
TypeError | Dimunculkan saat operasi atau fungsi diterapkan ke objek jenis yang tidak kompatibel. Nilai yang terkait adalah string yang memberikan detail tentang ketidakcocokan jenis. |
UnhandledBranchError | Dimunculkan saat satu atau beberapa cabang atau iterasi mengalami error runtime yang tidak ditangani hingga jumlah maksimum. |
ValueError | Dimunculkan saat operasi atau fungsi menerima argumen yang memiliki
jenis yang benar, tetapi nilainya salah, dan situasinya tidak dijelaskan
oleh pengecualian yang lebih akurat, seperti IndexError . |
ZeroDivisionError | Dimunculkan saat argumen kedua dari operasi pembagian atau modulo adalah nol. Nilai terkait adalah string yang menunjukkan jenis operand dan operasi. |
Anda juga dapat memunculkan error kustom
menggunakan sintaksis raise
.
Langkah selanjutnya
- Ringkasan proses debug
- Masalah umum untuk Alur Kerja
- Mengirim log eksekusi ke Cloud Logging
- Memecahkan masalah