Menjalankan alur kerja

Mengeksekusi alur kerja menjalankan definisi alur kerja saat ini yang terkait dengan alur kerja.

Anda dapat meneruskan argumen runtime dalam permintaan eksekusi alur kerja dan mengakses argumen tersebut menggunakan variabel alur kerja. Untuk mengetahui informasi selengkapnya, lihat Meneruskan argumen runtime dalam permintaan eksekusi.

Setelah eksekusi alur kerja selesai, histori dan hasilnya akan dipertahankan selama waktu terbatas. Untuk mengetahui informasi selengkapnya, lihat Kuota dan batas.

Sebelum memulai

Batasan keamanan yang ditentukan oleh organisasi mungkin mencegah Anda menyelesaikan langkah-langkah berikut. Untuk mengetahui informasi pemecahan masalah, lihat Mengembangkan aplikasi di lingkungan yang terbatas Google Cloud .

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Jika alur kerja mengakses resource Google Cloud lain, pastikan alur kerja tersebut dikaitkan dengan akun layanan yang memiliki izin yang benar untuk melakukannya. Untuk mempelajari akun layanan yang dikaitkan dengan alur kerja yang ada, lihat Memverifikasi akun layanan yang dikaitkan dengan alur kerja.

    Perhatikan bahwa untuk membuat resource dan melampirkan akun layanan, Anda memerlukan izin untuk membuat resource tersebut dan untuk meniru identitas akun layanan yang akan Anda lampirkan ke resource. Untuk mengetahui informasi selengkapnya, lihat Izin akun layanan.

  7. Deploy alur kerja menggunakan Google Cloud console atau Google Cloud CLI.
  8. Menjalankan alur kerja

    Anda dapat menjalankan alur kerja dengan cara berikut:

    • Di Google Cloud console
    • Dengan menggunakan Google Cloud CLI di terminal atau Cloud Shell
    • Dengan mengirim permintaan langsung ke Workflows API

    Anda juga dapat menjalankan alur kerja menggunakan Library Klien Cloud. Untuk mengetahui informasi selengkapnya, lihat Menjalankan alur kerja menggunakan Library Klien Cloud.

    Konsol

    1. Untuk menjalankan alur kerja, di konsol Google Cloud , buka halaman Workflows:

      Buka Workflows

    2. Di halaman Workflows, pilih alur kerja untuk membuka halaman detailnya.

    3. Di halaman Workflow details, klik Execute.

    4. Di halaman Execute workflow, di panel Input, Anda dapat memasukkan argumen runtime opsional untuk diteruskan ke alur kerja sebelum dieksekusi. Argumen harus dalam format JSON ; misalnya, {"animal":"cat"}. Jika alur kerja Anda tidak menggunakan argumen runtime, biarkan kolom ini kosong.

    5. Jika ingin, tentukan level logging panggilan yang ingin Anda terapkan ke eksekusi alur kerja. Dalam daftar Level log panggilan, pilih salah satu opsi berikut:

      • Tidak ditentukan: tidak ada level logging yang ditentukan. Ini adalah setelan defaultnya. Level log eksekusi lebih diutamakan daripada level log alur kerja apa pun, kecuali jika level log eksekusi tidak ditentukan (default); dalam hal ini, level log alur kerja berlaku.
      • Hanya error: mencatat semua pengecualian yang tertangkap; atau saat panggilan dihentikan karena adanya suatu pengecualian.
      • Semua panggilan: catat semua panggilan ke sub-alur kerja atau fungsi library beserta hasilnya.
      • Tidak ada pencatatan: tidak ada logging panggilan.

    6. Secara opsional, tentukan tingkat histori eksekusi yang ingin Anda terapkan ke eksekusi alur kerja. Dalam daftar Execution history, pilih salah satu opsi berikut:

      • Mewarisi dari alur kerja: menerapkan setelan histori eksekusi alur kerja. Ini adalah setelan defaultnya.
      • Dasar: mengaktifkan histori eksekusi dasar.
      • Mendetail: mengaktifkan histori eksekusi mendetail termasuk nilai variabel dalam cakupan dan perkiraan jumlah iterasi.

    7. Klik Jalankan.

    8. Di halaman Detail eksekusi, Anda dapat melihat hasil eksekusi termasuk output, ID dan status eksekusi, serta langkah saat ini atau terakhir dari eksekusi alur kerja. Untuk mengetahui informasi selengkapnya, lihat Mengakses hasil eksekusi alur kerja.

    gcloud

    1. Buka terminal.

    2. Temukan nama alur kerja yang ingin Anda jalankan. Jika tidak mengetahui nama alur kerja, Anda dapat memasukkan perintah berikut untuk mencantumkan semua alur kerja:

      gcloud workflows list
    3. Anda dapat menjalankan alur kerja menggunakan perintah gcloud workflows run atau perintah gcloud workflows execute:

      • Jalankan alur kerja dan tunggu hingga eksekusi selesai:

        gcloud workflows run WORKFLOW_NAME \
            --call-log-level=CALL_LOGGING_LEVEL \
            --execution-history-level="EXECUTION_HISTORY_LEVEL" \
            --data=DATA
      • Jalankan alur kerja tanpa menunggu hingga percobaan eksekusi selesai:

        gcloud workflows execute WORKFLOW_NAME \
            --call-log-level=CALL_LOGGING_LEVEL \
            --execution-history-level="EXECUTION_HISTORY_LEVEL" \
            --data=DATA

        Ganti kode berikut:

        • WORKFLOW_NAME: nama alur kerja.
        • CALL_LOGGING_LEVEL (opsional): level logging panggilan yang akan diterapkan selama eksekusi. Dapat berupa salah satu dari:

          • none: tidak ada level logging yang ditentukan. Ini adalah setelan defaultnya. Level log eksekusi lebih diutamakan daripada level log alur kerja apa pun, kecuali jika level log eksekusi tidak ditentukan (default); dalam hal ini, level log alur kerja berlaku.
          • log-errors-only: catat semua pengecualian yang tertangkap; atau saat panggilan dihentikan karena adanya pengecualian.
          • log-all-calls: catat semua panggilan ke sub-alur kerja atau fungsi library beserta hasilnya.
          • log-none: tidak ada logging panggilan.
        • EXECUTION_HISTORY_LEVEL (opsional): tingkat histori eksekusi yang akan diterapkan selama eksekusi. Dapat berupa salah satu dari:

          • none: tidak ada level histori eksekusi yang ditentukan. Ini adalah defaultnya. Jika tingkat histori eksekusi tidak ditentukan untuk eksekusi, tingkat tersebut ditentukan oleh tingkat yang diterapkan ke alur kerja. Jika levelnya berbeda, setelan yang diterapkan di tingkat eksekusi akan menggantikan setelan yang diterapkan di tingkat alur kerja untuk eksekusi ini.
          • execution-history-basic: mengaktifkan histori eksekusi dasar.
          • execution-history-detailed: mengaktifkan histori eksekusi mendetail termasuk nilai variabel dalam cakupan dan perkiraan jumlah iterasi.
        • DATA (opsional): argumen runtime untuk alur kerja dalam format JSON.

    4. Jika Anda menjalankan gcloud workflows execute, ID unik dari upaya eksekusi alur kerja akan ditampilkan dan outputnya akan mirip dengan berikut ini:

       To view the workflow status, you can use following command:
       gcloud workflows executions describe b113b589-8eff-4968-b830-8d35696f0b33 --workflow workflow-2 --location us-central1

      Untuk melihat status eksekusi, masukkan perintah yang ditampilkan oleh langkah sebelumnya.

    Jika upaya eksekusi berhasil, output-nya akan mirip dengan berikut, dengan state yang menunjukkan keberhasilan alur kerja, dan status yang menentukan langkah alur kerja terakhir dari eksekusi.

    argument: '{"searchTerm":"Friday"}'
    endTime: '2022-06-22T12:17:53.086073678Z'
    name: projects/1051295516635/locations/us-central1/workflows/myFirstWorkflow/executions/c4dffd1f-13db-46a0-8a4a-ee39c144cb96
    result: '["Friday","Friday the 13th (franchise)","Friday Night Lights (TV series)","Friday
        the 13th (1980 film)","Friday the 13th","Friday the 13th (2009 film)","Friday the
        13th Part III","Friday the 13th Part 2","Friday (Rebecca Black song)","Friday Night
        Lights (film)"]'
    startTime: '2022-06-22T12:17:52.799387653Z'
    state: SUCCEEDED
    status:
        currentSteps:
        - routine: main
            step: returnOutput
    workflowRevisionId: 000001-ac2

    REST API

    Untuk membuat eksekusi baru menggunakan revisi terbaru dari alur kerja tertentu, gunakan metode projects.locations.workflows.executions.create.

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_NUMBER: nomor Google Cloud project Anda yang tercantum di halaman IAM & Admin Settings.
    • LOCATION: region tempat alur kerja di-deploy—misalnya, us-central1.
    • WORKFLOW_NAME: nama yang ditentukan pengguna untuk alur kerja—misalnya, myFirstWorkflow.
    • PARAMETER: optional. Jika alur kerja yang Anda jalankan dapat menerima argumen runtime yang Anda teruskan sebagai bagian dari permintaan eksekusi, Anda dapat menambahkan string berformat JSON ke isi permintaan yang nilainya adalah satu atau beberapa pasangan nilai parameter yang di-escape—misalnya, "{\"searchTerm\":\"asia\"}".
    • VALUE: optional. Nilai pasangan nilai parameter yang dapat diterima alur kerja Anda sebagai argumen runtime.
    • CALL_LOGGING_LEVEL: optional. Level logging panggilan yang akan diterapkan selama eksekusi. Defaultnya adalah tidak ada level logging yang ditentukan dan level log alur kerja yang berlaku. Untuk mengetahui informasi selengkapnya, lihat Mengirim Log ke Logging. Salah satu dari berikut ini:
      • CALL_LOG_LEVEL_UNSPECIFIED: tidak ada level logging yang ditentukan dan level log alur kerja berlaku sebagai gantinya. Ini adalah setelan defaultnya. Jika tidak, level log eksekusi akan berlaku dan lebih diutamakan daripada level log alur kerja.
      • LOG_ERRORS_ONLY: mencatat semua pengecualian yang tertangkap; atau saat panggilan dihentikan karena adanya pengecualian.
      • LOG_ALL_CALLS: mencatat semua panggilan ke sub-alur kerja atau fungsi library beserta hasilnya.
      • LOG_NONE: tidak ada logging panggilan.
    • BACKLOG_EXECUTION: opsional. Jika disetel ke true, eksekusi tidak akan tertunda saat kuota serentak habis. Untuk mengetahui informasi selengkapnya, lihat Mengelola penumpukan eksekusi.
    • EXECUTION_HISTORY_LEVEL: opsional. Level histori eksekusi yang akan diterapkan selama eksekusi. Untuk mengetahui informasi selengkapnya, lihat Melihat histori langkah eksekusi. Salah satu dari berikut ini:
      • EXECUTION_HISTORY_LEVEL_UNSPECIFIED: tidak ada level histori eksekusi yang ditentukan. Ini adalah setelan defaultnya. Jika tingkat histori eksekusi tidak ditentukan untuk eksekusi, tingkat tersebut ditentukan oleh tingkat yang diterapkan ke alur kerja. Jika levelnya berbeda, setelan yang diterapkan di tingkat eksekusi akan menggantikan setelan yang diterapkan di tingkat alur kerja untuk eksekusi ini.
      • EXECUTION_HISTORY_BASIC: mengaktifkan histori eksekusi dasar.
      • EXECUTION_HISTORY_ADVANCED: mengaktifkan histori eksekusi mendetail termasuk nilai variabel dalam cakupan dan jumlah iterasi yang diharapkan.

    Meminta isi JSON:

    {
      "argument": "{\"PARAMETER\":\"VALUE\"}",
      "callLogLevel": "CALL_LOGGING_LEVEL",
      "disableConcurrencyQuotaOverflowBuffering": "BACKLOG_EXECUTION",
      "executionHistoryLevel": "EXECUTION_HISTORY_LEVEL"
    }
    

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Jika berhasil, isi respons berisi instance Execution yang baru dibuat:

    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_NAME/executions/EXECUTION_ID",
      "startTime": "2023-11-07T14:35:27.215337069Z",
      "state": "ACTIVE",
      "argument": "{\"PARAMETER\":\"VALUE\"}",
      "workflowRevisionId": "000001-2df",
      "callLogLevel": "CALL_LOGGING_LEVEL",
      "executionHistoryLevel": "EXECUTION_HISTORY_LEVEL",
      "status": {}
    }
    

    Memeriksa status eksekusi

    Ada beberapa perintah untuk membantu Anda memeriksa status eksekusi alur kerja.

    • Untuk mengambil daftar upaya eksekusi alur kerja dan ID-nya, masukkan perintah berikut:

      gcloud workflows executions list WORKFLOW_NAME

      Ganti WORKFLOW_NAME dengan nama alur kerja.

      Perintah ini menampilkan nilai NAME yang mirip dengan berikut ini:

      projects/PROJECT_NUMBER/locations/REGION/workflows/WORKFLOW_NAME/executions/EXECUTION_ID

      Salin ID eksekusi untuk digunakan dalam perintah berikutnya.

    • Untuk memeriksa status upaya eksekusi dan menunggu hingga upaya selesai, masukkan perintah berikut:

      gcloud workflows executions wait EXECUTION_ID

      Ganti EXECUTION_ID dengan ID percobaan eksekusi.

      Perintah menunggu hingga upaya eksekusi selesai, lalu menampilkan hasilnya.

    • Untuk menunggu hingga eksekusi terakhir selesai, lalu menampilkan hasil eksekusi yang selesai, masukkan perintah berikut:

      gcloud workflows executions wait-last

      Jika Anda melakukan upaya eksekusi sebelumnya dalam sesi gcloud yang sama, perintah akan menunggu upaya eksekusi sebelumnya selesai, lalu menampilkan hasil eksekusi yang telah selesai. Jika tidak ada upaya sebelumnya, gcloud akan menampilkan error berikut:

      ERROR: (gcloud.workflows.executions.wait-last) [NOT FOUND] There are no cached executions available.
      
    • Untuk mendapatkan status eksekusi terakhir, masukkan perintah berikut:

      gcloud workflows executions describe-last

      Jika Anda melakukan percobaan eksekusi sebelumnya dalam sesi gcloud yang sama, perintah akan menampilkan hasil eksekusi terakhir meskipun sedang berjalan. Jika tidak ada upaya sebelumnya, gcloud akan menampilkan error berikut:

      ERROR: (gcloud.beta.workflows.executions.describe-last) [NOT FOUND] There are no cached executions available.
      

    Filter eksekusi

    Anda dapat menerapkan filter ke daftar eksekusi alur kerja yang ditampilkan oleh metode workflows.executions.list.

    Anda dapat memfilter berdasarkan kolom berikut:

    • createTime
    • disableOverflowBuffering
    • duration
    • endTime
    • executionId
    • label
    • startTime
    • state
    • stepName
    • workflowRevisionId

    Misalnya, untuk memfilter label (labels."fruit":"apple"), Anda dapat membuat permintaan API yang mirip dengan berikut ini:

    GET https://workflowexecutions.googleapis.com/v1/projects/MY_PROJECT/locations/MY_LOCATION/workflows/MY_WORKFLOW/executions?view=full&filter=labels.%22fruit%22%3A%22apple%22"
    

    Dengan:

    • view=full menentukan tampilan yang menentukan kolom mana yang harus diisi dalam eksekusi yang ditampilkan; dalam hal ini, semua data
    • labels.%22fruit%22%3A%22apple%22adalah sintaksis filter yang dienkode ke URL

    Untuk mengetahui informasi selengkapnya, lihat Pemfilteran AIP-160.

    Mengelola penumpukan eksekusi

    Anda dapat menggunakan penundaan eksekusi untuk menghindari percobaan ulang sisi klien, menghilangkan penundaan eksekusi, dan memaksimalkan throughput. Eksekusi yang tertunda akan otomatis berjalan segera setelah kuota serentak eksekusi tersedia.

    Ada jumlah maksimum eksekusi alur kerja aktif yang dapat dijalankan secara bersamaan. Setelah kuota ini habis, dan jika penumpukan eksekusi dinonaktifkan, atau jika kuota untuk eksekusi yang tertunda telah tercapai, setiap eksekusi baru akan gagal dengan kode status HTTP 429 Too many requests. Dengan mengaktifkan penundaan eksekusi, eksekusi baru akan berhasil dan dibuat dalam status QUEUED. Segera setelah kuota serentak eksekusi tersedia, eksekusi akan otomatis berjalan dan memasuki status ACTIVE.

    Secara default, penumpukan eksekusi diaktifkan untuk semua permintaan (termasuk yang dipicu oleh Cloud Tasks) dengan pengecualian berikut:

    • Saat membuat eksekusi menggunakan konektor executions.run atau executions.create dalam alur kerja, penumpukan eksekusi dinonaktifkan secara default. Anda dapat mengonfigurasinya dengan menetapkan kolom disableConcurrencyQuotaOverflowBuffering eksekusi ke false secara eksplisit.
    • Untuk eksekusi yang dipicu oleh Pub/Sub, penumpukan eksekusi dinonaktifkan dan tidak dapat dikonfigurasi.

    Perhatikan hal berikut:

    • Eksekusi dalam antrean dimulai dalam urutan first-in-first-out (FIFO), berdasarkan upaya terbaik.
    • Kolom stempel waktu createTime menunjukkan kapan eksekusi dibuat. Stempel waktu startTime menunjukkan kapan eksekusi otomatis dikeluarkan dari antrean backlog dan mulai berjalan. Untuk eksekusi yang tidak tertunda, kedua nilai stempel waktu identik.
    • Batas untuk eksekusi yang tertunda dapat diamati menggunakan metrik kuota workflowexecutions.googleapis.com/executionbacklogentries. Untuk mengetahui informasi selengkapnya, lihat Melihat dan mengelola kuota.

    Menonaktifkan penumpukan eksekusi

    Anda dapat menonaktifkan penumpukan eksekusi dengan menetapkan tanda saat menggunakan Google Cloud CLI. Contoh:

    gcloud workflows execute WORKFLOW_NAME
        --disable-concurrency-quota-overflow-buffering

    Atau, Anda dapat menonaktifkan penumpukan eksekusi dengan menyetel kolom disableConcurrencyQuotaOverflowBuffering ke true di isi JSON permintaan saat mengirim permintaan eksekusi ke Workflows REST API. Contoh:

    {
      "argument": {"arg1":"value1"},
      "callLogLevel": "LOG_NONE",
      "disableConcurrencyQuotaOverflowBuffering": true
    }

    Untuk mengetahui informasi selengkapnya, lihat Menjalankan alur kerja.

    Langkah berikutnya