Mengakses hasil eksekusi alur kerja

Setelah menjalankan alur kerja, Anda dapat mengakses hasil eksekusi alur kerja di konsol Google Cloud atau menggunakan Google Cloud CLI.

Konsol

  1. Di konsol Google Cloud, buka halaman Workflows.

    Buka Workflows

  2. Untuk mengakses hasil eksekusi alur kerja, klik nama alur kerja untuk membuka halaman Detail alur kerja.

  3. Untuk mengetahui detail eksekusi tertentu, pada tab Executions, klik ID eksekusi dalam daftar untuk membuka halaman Execution details.

  4. 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.
  5. Untuk melihat histori eksekusi alur kerja sebagai daftar entri langkah, klik tab Steps. Untuk mengetahui informasi selengkapnya, lihat Melihat histori langkah eksekusi.

  6. Untuk melihat log eksekusi alur kerja, klik tab Logs.

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

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

  2. 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 kerja
    • EXECUTION_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-ac2
    Outputnya berisi informasi berikut:

    • argument: argumen runtime yang diteruskan ke alur kerja, jika ada
    • endTime: saat eksekusi berakhir
    • error: pesan error yang ditampilkan sebagai bagian dari pengecualian yang mengakibatkan kegagalan eksekusi
    • name: nama lengkap eksekusi, termasuk nama project, lokasi alur kerja, nama alur kerja, dan ID eksekusi
    • startTime: saat eksekusi dimulai
    • state: menunjukkan status akhir alur kerja
    • status: langkah alur kerja saat ini atau akhir dari eksekusi
    • workflowRevisionID: 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:
  • tags—daftar dengan string HttpError
  • message—pesan error yang dapat dibaca manusia
  • code—Kode status respons HTTP
  • headers—header respons
  • body—isi respons
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