Setelah membuat kumpulan pekerja Cloud Run, Anda dapat menggunakan Workflows untuk mengotomatiskan penskalaannya. Hal ini memungkinkan Anda menyesuaikan jumlah instance berdasarkan peristiwa eksternal, logika kustom, atau jadwal.
Sebelum memulai
Daftar berikut menjelaskan persyaratan saat menggunakan Workflows untuk men-deploy dan menjalankan alur kerja kumpulan pekerja Cloud Run:
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Aktifkan Cloud Run Admin API dan Workflows API.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk men-deploy dan mengeksekusi kumpulan pekerja Cloud Run dengan Workflows, minta administrator Anda untuk memberi Anda peran IAM berikut:
-
Admin Cloud Run (
roles/run.admin) di kumpulan pekerja Cloud Run -
Workflows Editor (
roles/workflows.editor) di project -
Pengguna Akun Layanan (
roles/iam.serviceAccountUser) di identitas layanan
Agar Workflows dapat mengupdate kumpulan worker Cloud Run, akun layanan yang digunakan untuk men-deploy alur kerja Anda harus memiliki peran berikut:
- Cloud Run Admin (
roles/run.admin)
Untuk mengetahui daftar peran dan izin IAM yang terkait dengan Cloud Run, lihat Peran IAM Cloud Run dan Izin IAM Cloud Run. Jika kumpulan worker Cloud Run Anda berinteraksi dengan Google Cloud API, seperti Library Klien Cloud, lihat panduan konfigurasi identitas layanan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat izin deployment dan mengelola akses.
Membuat kumpulan pekerja Cloud Run
Buat kumpulan pekerja Cloud Run jika Anda belum melakukannya. Anda akan mereferensikan nama kumpulan worker Cloud Run saat menjalankan alur kerja nanti.
Membuat, men-deploy, dan menjalankan alur kerja
Alur kerja berikut memperbarui jumlah instance kumpulan pekerja Cloud Run Anda.
Di direktori utama, buat file YAML baru untuk alur kerja Anda, seperti
update-cr-worker-pool.yaml, lalu salin dan tempel konten berikut ke dalam file Anda:main: params: [args] steps: - init: assign: - project: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")} - region: ${args.region} - workerPoolName: ${args.workerPool} - instanceCount: ${args.instanceCount} - workerPoolUrl: ${"https://run.googleapis.com/v2/projects/" + project + "/locations/" + region + "/workerPools/" + workerPoolName} - updateWorkerPool: call: http.patch args: url: ${workerPoolUrl} query: updateMask: "scaling.manualInstanceCount" auth: type: OAuth2 body: scaling: manualInstanceCount: ${int(instanceCount)} result: updateResult - returnOutput: return: ${updateResult.body}Deploy alur kerja dan kaitkan dengan akun layanan yang ditentukan:
gcloud workflows deploy WORKFLOW_NAME \ --source=WORKFLOW_NAME.yaml \ --location=REGION \ --service-account=SERVICE_ACCOUNT
Ganti kode berikut:
- WORKFLOW_NAME: nama alur kerja Anda, seperti
update-worker-pool. Nama alur kerja harus cocok dengan nama file YAML yang Anda buat sebelumnya. - REGION: region tempat kumpulan pekerja Cloud Run Anda di-deploy, misalnya
europe-west1. - SERVICE_ACCOUNT: email akun layanan yang telah diberi
peran yang diperlukan, misalnya:
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.comPROJECT_NUMBER-compute@developer.gserviceaccount.com
- WORKFLOW_NAME: nama alur kerja Anda, seperti
Jalankan alur kerja dengan detail pool pekerja dan jumlah instance:
gcloud workflows execute WORKFLOW_NAME \ --location=REGION \ --data='{"region":"REGION", "workerPool":"WORKER_POOL_NAME", "instanceCount":INSTANCE_COUNT}'
Ganti kode berikut:
- WORKFLOW_NAME: nama alur kerja Anda.
- REGION: region tempat kumpulan pekerja Cloud Run Anda di-deploy, misalnya
europe-west1. - WORKER_POOL_NAME: nama kumpulan pekerja Anda.
- INSTANCE_COUNT: jumlah instance yang diubah untuk worker pool, misalnya
3.
Memverifikasi pembaruan
Setelah menjalankan alur kerja, Anda dapat melihat pembaruan di tempat berikut di konsol Google Cloud :
Untuk melihat status dan hasil eksekusi, buka halaman detail Workflows dan pilih alur kerja Anda:
Verifikasi bahwa kolom
manualInstanceCounttelah berubah dalam eksekusi alur kerja terbaru.Untuk memverifikasi bahwa update berhasil di Cloud Run, buka halaman kumpulan pekerja:
Pastikan jumlah penskalaan manual untuk kumpulan pekerja Anda telah berubah.