Mengakses hasil eksekusi alur kerja

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

Konsol

  1. Di Google Cloud konsol, 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 tentang eksekusi tertentu, di tab Eksekusi, klik ID eksekusi dalam daftar untuk membuka halaman Detail eksekusi.

  4. 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.
    • Awal eksekusi: saat eksekusi mulai berjalan dan menjalankan 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.
  5. Untuk melihat histori eksekusi alur kerja sebagai daftar entri langkah, klik tab Langkah. Untuk mengetahui informasi selengkapnya, lihat Melihat histori langkah eksekusi.

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

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

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

Mengakses data error yang ditampilkan sebagai string

Beberapa konektor dan HTTP API akan menserialisasi error sebagai string sebelum menampilkan error. Anda dapat menggunakan fungsi library standar untuk memulihkan payload ke error asli. Misalnya, untuk mengonversi string error ke peta, Anda dapat menggunakan fungsi json.decode dan text.encode:

json.decode(text.encode(ERROR_FROM_API))

Tag error

Tabel berikut menjelaskan arti dari berbagai tag error.

Tag Deskripsi
AuthError Ditampilkan saat pembuatan kredensial untuk permintaan HTTP gagal.
ConnectionError Ditampilkan 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. Upaya coba lagi mungkin tidak bersifat idempoten.
ConnectionFailedError Ditampilkan saat koneksi tidak dibuat dengan endpoint API; misalnya, karena nama domain yang salah, masalah resolusi DNS, atau masalah jaringan lainnya. Upaya coba lagi bersifat idempoten.
HttpError Ditampilkan saat permintaan HTTP gagal dengan status error HTTP. Saat pengecualian ini ditampilkan, 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 Ditampilkan saat operasi yang berjalan lama selesai tanpa berhasil.
ParallelNestingError Ditampilkan saat kedalaman maksimum langkah paralel yang dapat di-nesting terlampaui.
RecursionError Ditampilkan saat interpreter mendeteksi bahwa kedalaman stack panggilan maksimum terlampaui.
ResourceLimitError Ditampilkan saat batas resource tertentu habis. Jika ditampilkan secara internal, jenis error ini tidak dapat ditangkap dan menyebabkan kegagalan eksekusi langsung.
ResponseTypeError Ditampilkan saat operasi yang berjalan lama menampilkan respons dengan jenis yang salah
SystemError Ditampilkan saat interpreter menemukan error internal.
TimeoutError Ditampilkan saat fungsi sistem mengalami waktu tunggu habis di tingkat sistem.
TypeError Ditampilkan 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 Ditampilkan saat operasi atau fungsi menerima argumen yang memiliki jenis yang benar tetapi nilai yang salah, dan situasinya tidak dijelaskan oleh pengecualian yang lebih tepat, seperti IndexError.
ZeroDivisionError Ditampilkan saat argumen kedua dari operasi pembagian atau modulo adalah nol. Nilai terkait adalah string yang menunjukkan jenis operand dan operasi.

Anda juga dapat menampilkan error kustom menggunakan sintaksis raise.

Langkah berikutnya