Mengeksekusi alur kerja akan 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 disimpan untuk 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 Google Cloud yang terbatas.
- 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.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
- Jika alur kerja mengakses resource Google Cloud lainnya, pastikan resource tersebut dikaitkan dengan akun layanan yang memiliki izin yang tepat untuk melakukannya. Untuk mempelajari akun layanan mana yang terkait dengan alur kerja yang ada, lihat Memverifikasi akun layanan terkait alur kerja.
Perlu diperhatikan bahwa untuk membuat resource dan melampirkan akun layanan, Anda memerlukan izin untuk membuat resource tersebut dan meniru identitas akun layanan yang akan dikaitkan ke resource. Untuk informasi selengkapnya, lihat Izin akun layanan.
- Deploy alur kerja menggunakan Google Cloud Console atau Google Cloud CLI.
Menjalankan alur kerja
Anda dapat menjalankan alur kerja menggunakan library klien, di Konsol Google Cloud, menggunakan gcloud CLI, atau dengan mengirim permintaan ke Workflows REST API.
Konsol
Untuk menjalankan alur kerja, di Konsol Google Cloud, buka halaman Workflows:
Di halaman Workflows, pilih alur kerja untuk membuka halaman detailnya.
Di halaman Workflow details, klik play_arrow Execute.
Di halaman Execute Workflow, di panel Input, Anda dapat memasukkan argumen runtime opsional untuk diteruskan ke alur kerja Anda sebelum eksekusi. Argumen harus dalam format JSON; misalnya,
{"animal":"cat"}
. Jika alur kerja Anda tidak menggunakan argumen runtime, kosongkan kolom ini.(Opsional) Tentukan level logging panggilan yang ingin Anda terapkan ke eksekusi alur kerja. Di daftar Level log panggilan, pilih salah satu dari:
- 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.
Klik Jalankan.
Di halaman Execution details, Anda dapat melihat hasil eksekusi, termasuk output apa pun, ID dan status eksekusi, serta langkah saat ini atau terakhir dari eksekusi alur kerja. Untuk informasi selengkapnya, lihat Mengakses hasil eksekusi alur kerja.
gcloud
Buka terminal.
Temukan nama alur kerja yang ingin Anda jalankan. Jika tidak tahu nama alur kerja, Anda dapat memasukkan perintah berikut untuk menampilkan daftar semua alur kerja:
gcloud workflows list
Anda dapat menjalankan alur kerja dengan dua cara:
Jalankan alur kerja dan tunggu hingga eksekusi selesai:
gcloud workflows run WORKFLOW_NAME \ --call-log-level=CALL_LOGGING_LEVEL \ --data=DATA
Jalankan alur kerja tanpa menunggu upaya eksekusi selesai:
gcloud workflows execute WORKFLOW_NAME \ --call-log-level=CALL_LOGGING_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.
DATA
(opsional): argumen runtime untuk alur kerja Anda dalam format JSON.
Jika Anda menjalankan
gcloud workflows execute
, ID unik dari upaya eksekusi alur kerja akan ditampilkan dan outputnya 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, outputnya akan mirip dengan
berikut ini, dengan state
yang menunjukkan keberhasilan alur kerja, dan status
yang menentukan langkah alur kerja akhir 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
Library klien
Contoh berikut mengasumsikan bahwa Anda telah men-deploy alur kerja, myFirstWorkflow
.
Instal library klien dan siapkan lingkungan pengembangan Anda. Untuk mengetahui detailnya, lihat Ringkasan library klien alur kerja.
Clone repositori aplikasi contoh ke komputer lokal Anda:
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
Atau, Anda dapat mendownload sampel sebagai file ZIP dan mengekstraknya.
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
Atau, Anda dapat mendownload sampel sebagai file ZIP dan mengekstraknya.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Atau, Anda dapat mendownload sampel sebagai file ZIP dan mengekstraknya.
Ubah ke direktori yang berisi kode contoh Workflows:
Java
cd java-docs-samples/workflows/cloud-client/
Node.js
cd nodejs-docs-samples/workflows/quickstart/
Python
cd python-docs-samples/workflows/cloud-client/
Lihat kode contoh:
Java
Node.js (JavaScript)
Node.js (TypeScript)
Python
Contoh tersebut melakukan hal berikut:
- Menyiapkan Library Klien Cloud untuk Workflows.
- Menjalankan alur kerja.
- Melakukan polling terhadap eksekusi alur kerja (menggunakan backoff eksponensial) hingga eksekusi dihentikan.
- Mencetak hasil eksekusi.
Untuk menjalankan contoh, instal dependensi terlebih dahulu:
Java
mvn compile
Node.js (JavaScript)
npm install
Node.js (TypeScript)
npm install && npm run build
Python
pip3 install -r requirements.txt
Jalankan skrip:
Java
GOOGLE_CLOUD_PROJECT=PROJECT_ID LOCATION=CLOUD_REGION WORKFLOW=WORKFLOW_NAME mvn compile exec:java -Dexec.mainClass=com.example.workflows.WorkflowsQuickstart
Node.js (JavaScript)
npm start PROJECT_ID CLOUD_REGION WORKFLOW_NAME
Node.js (TypeScript)
npm start PROJECT_ID CLOUD_REGION WORKFLOW_NAME
Python
GOOGLE_CLOUD_PROJECT=PROJECT_ID LOCATION=CLOUD_REGION WORKFLOW=WORKFLOW_NAME python3 main.py
Ganti kode berikut:
PROJECT_ID
(wajib): Project ID untuk project Google CloudCLOUD_REGION
: lokasi untuk alur kerja (default:us-central1
)WORKFLOW_NAME
: ID alur kerja (default:myFirstWorkflow
)
Outputnya mirip dengan hal berikut ini:
Execution finished with state: SUCCEEDED ["Sunday","Sunday in the Park with George","Sunday shopping","Sunday Bloody Sunday","Sunday Times Golden Globe Race","Sunday All Stars","Sunday Night (South Korean TV series)","Sunday Silence","Sunday Without God","Sunday Independent (Ireland)"]
REST API
Untuk membuat eksekusi baru menggunakan revisi terbaru dari alur kerja tertentu, gunakan
metode
projects.locations.workflows.executions.create
.
Perhatikan bahwa untuk mengautentikasi, Anda memerlukan akun layanan dengan hak istimewa yang memadai untuk menjalankan alur kerja. Misalnya, Anda dapat memberikan peran Workflows Invoker
(roles/workflows.invoker
) ke akun layanan, sehingga akun tersebut memiliki izin untuk
memicu eksekusi alur kerja Anda. Untuk informasi selengkapnya, lihat
Memanggil Workflows.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_NUMBER
: nomor project Google Cloud Anda yang tercantum di halaman IAM & Admin Settings.LOCATION
: region tempat alur kerja di-deploy—misalnya,us-central1
.WORKFLOW_NAME
: nama yang ditetapkan pengguna untuk alur kerja—misalnya,myFirstWorkflow
.PARAMETER
: optional. Jika alur kerja yang dijalankan dapat menerima argumen runtime yang Anda teruskan sebagai bagian dari permintaan eksekusi, Anda dapat menambahkan string berformat JSON yang nilainya berupa satu atau beberapa pasangan parameter-value yang di-escape ke isi permintaan—misalnya,"{\"searchTerm\":\"asia\"}"
.VALUE
: optional. Nilai pasangan parameter value yang dapat diterima alur kerja Anda sebagai argumen runtime.CALL_LOGGING_LEVEL
: optional. Tingkat logging panggilan yang akan diterapkan selama eksekusi. Defaultnya adalah tidak ada level logging yang ditentukan dan level log alur kerjalah yang berlaku. Untuk mengetahui informasi lebih lanjut, lihat Mengirim Log ke Logging. Salah satu dari opsi berikut:CALL_LOG_LEVEL_UNSPECIFIED
: tidak ada level logging yang ditentukan dan level log alur kerja yang berlaku. Ini adalah setelan defaultnya. Jika tidak, level log eksekusi akan berlaku dan lebih diprioritaskan daripada level log alur kerja.LOG_ERRORS_ONLY
: mencatat semua pengecualian yang tertangkap; atau saat panggilan dihentikan karena suatu pengecualian.LOG_ALL_CALLS
: mencatat semua panggilan ke sub-alur kerja atau fungsi library beserta hasilnya.LOG_NONE
: tidak ada logging panggilan.
Meminta isi JSON:
{ "argument": "{\"PARAMETER\":\"VALUE\"}", "callLogLevel": "CALL_LOGGING_LEVEL" }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Jika berhasil, isi respons akan memuat 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", "status": {} }
Memeriksa status eksekusi
Ada beberapa perintah untuk membantu Anda memeriksa status eksekusi alur kerja.
Untuk mengambil daftar upaya eksekusi alur kerja beserta 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 di 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 upaya eksekusi.Perintah tersebut menunggu upaya eksekusi selesai, lalu menampilkan hasilnya.
Untuk menunggu hingga eksekusi terakhir selesai lalu menampilkan hasil eksekusi yang telah selesai, masukkan perintah berikut:
gcloud workflows executions wait-last
Jika Anda telah melakukan upaya eksekusi sebelumnya dalam sesi
gcloud
yang sama, perintah akan menunggu hingga 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 telah melakukan upaya 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.