Dengan alur kerja, Anda dapat menjalankan tugas Cloud Run sebagai bagian dari alur kerja untuk melakukan pemrosesan data yang lebih kompleks atau mengorkestrasi sistem tugas yang ada.
Tutorial ini menunjukkan cara menggunakan Workflows untuk menjalankan tugas Cloud Run yang memproses data yang diteruskan sebagai variabel lingkungan ke tugas, sebagai respons terhadap peristiwa dari Cloud Storage.
Perlu diperhatikan bahwa Anda juga dapat menyimpan data peristiwa di bucket Cloud Storage, sehingga Anda dapat mengenkripsi data menggunakan kunci enkripsi yang dikelola pelanggan. Untuk mengetahui informasi selengkapnya, lihat Menjalankan tugas Cloud Run yang memproses data peristiwa yang disimpan di Cloud Storage.
Tujuan
Dalam tutorial ini, Anda akan:
- Buat tugas Cloud Run yang memproses file data di bucket Cloud Storage.
- Deploy alur kerja yang melakukan hal berikut:
- Menerima peristiwa Cloud Storage sebagai argumen.
- Memeriksa apakah bucket Cloud Storage yang ditentukan dalam peristiwa adalah bucket yang sama dengan yang digunakan oleh tugas Cloud Run.
- Jika ya, gunakan konektor Cloud Run Admin API untuk menjalankan tugas Cloud Run.
- Buat pemicu Eventarc yang menjalankan alur kerja sebagai respons terhadap peristiwa yang memengaruhi bucket Cloud Storage.
- Picu alur kerja dengan memperbarui file data input di bucket Cloud Storage.
Biaya
Dalam dokumen ini, Anda menggunakan komponen Google Cloud yang dapat ditagih berikut:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
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.
Konsol
- 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.
-
Aktifkan API Artifact Registry, Cloud Build, Cloud Run, Cloud Storage, Eventarc, dan Workflows.
-
Buat akun layanan:
-
Di konsol Google Cloud, buka halaman Buat akun layanan.
Buka Create service account - Pilih project Anda.
-
Di kolom Nama akun layanan, masukkan nama. Konsol Google Cloud akan mengisi kolom ID akun layanan berdasarkan nama ini.
Di kolom Deskripsi akun layanan, masukkan sebuah deskripsi. Sebagai contoh,
Service account for quickstart
. - Klik Buat dan lanjutkan.
-
Berikan peran berikut ke akun layanan: Cloud Run Admin, Eventarc Event Receiver, Logs Writer, Workflows Invoker.
Untuk memberikan peran, temukan daftar Pilih peran, lalu pilih peran.
Untuk memberikan peran tambahan, klik
Tambahkan peran lain, lalu tambahkan setiap peran tambahan. - Klik Lanjutkan.
-
Klik Selesai untuk menyelesaikan pembuatan akun layanan.
-
-
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.
-
Aktifkan API Artifact Registry, Cloud Build, Cloud Run, Cloud Storage, Eventarc, dan Workflows.
-
Buat akun layanan:
-
Di konsol Google Cloud, buka halaman Buat akun layanan.
Buka Create service account - Pilih project Anda.
-
Di kolom Nama akun layanan, masukkan nama. Konsol Google Cloud akan mengisi kolom ID akun layanan berdasarkan nama ini.
Di kolom Deskripsi akun layanan, masukkan sebuah deskripsi. Sebagai contoh,
Service account for quickstart
. - Klik Buat dan lanjutkan.
-
Berikan peran berikut ke akun layanan: Cloud Run Admin, Eventarc Event Receiver, Logs Writer, Workflows Invoker.
Untuk memberikan peran, temukan daftar Pilih peran, lalu pilih peran.
Untuk memberikan peran tambahan, klik
Tambahkan peran lain, lalu tambahkan setiap peran tambahan. - Klik Lanjutkan.
-
Klik Selesai untuk menyelesaikan pembuatan akun layanan.
-
- Sebelum membuat pemicu untuk peristiwa langsung dari Cloud Storage, berikan peran Pub/Sub Publisher (
roles/pubsub.publisher
) ke agen layanan Cloud Storage, yaitu akun layanan yang dikelola Google:- Di Konsol Google Cloud, buka halaman IAM.
- Centang kotak Sertakan pemberian peran yang disediakan Google.
- Di kolom Principal, cari Agen Layanan Cloud Storage dengan formulir
service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com
, lalu klik Editprincipal di baris yang sesuai. - Klik Tambahkan peran atau Tambahkan peran lain.
- Dalam daftar Select a role, filter untuk Pub/Sub Publisher, lalu pilih peran.
- Klik Save.
- Di Konsol Google Cloud, buka halaman IAM.
- Jika Anda mengaktifkan agen layanan Cloud Pub/Sub pada atau
sebelum 8 April 2021, untuk mendukung permintaan push Pub/Sub
yang diautentikasi, berikan
peran Service
Account Token Creator (
roles/iam.serviceAccountTokenCreator
) ke akun layanan yang dikelola Google. Jika tidak, peran ini diberikan secara default:- Di Konsol Google Cloud, buka halaman IAM.
- Centang kotak Sertakan pemberian peran yang disediakan Google.
- Di kolom Name, cari Akun Layanan Cloud Pub/Sub, lalu klik Edit entity utama di baris yang sesuai.
- Klik Tambahkan peran atau Tambahkan peran lain.
- Pada daftar Select a role, filter untuk Service Account Token Creator, lalu pilih peran.
- Klik Save.
- Di Konsol Google Cloud, buka halaman IAM.
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
Cloud Shell mendukung perintah
/dev/urandom
dalam tutorial ini yang menghasilkan angka pseudorandom.
gcloud
Untuk menggunakan terminal online dengan gcloud CLI yang sudah disiapkan, aktifkan Cloud Shell:
Di bagian bawah halaman ini, sesi Cloud Shell dimulai dan menampilkan perintah command line. Perlu waktu beberapa detik hingga sesi diinisialisasi.
Cloud Shell mendukung perintah
/dev/urandom
dalam tutorial ini yang menghasilkan angka pseudorandom.- Membuat atau memilih project Google Cloud.
-
Membuat project Google Cloud:
gcloud projects create PROJECT_ID
-
Pilih project Google Cloud yang Anda buat:
gcloud config set project PROJECT_ID
-
- Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
- Aktifkan Artifact Registry, Cloud Build,
Cloud Run, Cloud Storage, Eventarc,
dan Workflows API:
gcloud services enable artifactregistry.googleapis.com \ cloudbuild.googleapis.com \ eventarc.googleapis.com \ run.googleapis.com \ storage.googleapis.com \ workflows.googleapis.com
- Buat akun layanan untuk alur kerja Anda yang akan digunakan untuk autentikasi dengan layanan Google Cloud lainnya dan berikan peran yang sesuai.
- Buat akun layanan:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Ganti
SERVICE_ACCOUNT_NAME
dengan nama untuk akun layanan. - Berikan peran ke akun layanan yang dikelola pengguna yang Anda buat di langkah sebelumnya. Jalankan perintah berikut satu kali untuk setiap peran IAM berikut atau Anda dapat menggunakan flag
--role
beberapa kali dalam satu perintah:roles/eventarc.eventReceiver
: untuk menerima peristiwaroles/logging.logWriter
: untuk menulis logroles/run.admin
: untuk menjalankan tugas Cloud Runroles/workflows.invoker
: untuk memanggil alur kerja
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role=ROLE
Ganti kode berikut:
PROJECT_ID
: project ID tempat Anda membuat akun layananROLE
: peran yang akan diberikan ke akun layanan yang dikelola pengguna
- Buat akun layanan:
- Sebelum membuat pemicu untuk peristiwa langsung dari Cloud Storage, berikan peran Pub/Sub
Publisher (
roles/pubsub.publisher
) ke agen layanan Cloud Storage, yaitu akun layanan yang dikelola Google:SERVICE_ACCOUNT="$(gsutil kms serviceaccount -p PROJECT_ID)" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:${SERVICE_ACCOUNT}" \ --role='roles/pubsub.publisher'
- Jika Anda mengaktifkan agen layanan Cloud Pub/Sub pada atau sebelum
8 April 2021, untuk mendukung permintaan push Pub/Sub yang diautentikasi, berikan
peran
Service Account Token Creator (
roles/iam.serviceAccountTokenCreator
) ke akun layanan yang dikelola Google. Jika tidak, peran ini akan diberikan secara default:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com \ --role=roles/iam.serviceAccountTokenCreator
Ganti PROJECT_NUMBER
dengan nomor project
Google Cloud Anda. Anda dapat menemukan nomor project di halaman Welcome pada Google Cloud Console atau dengan menjalankan perintah berikut:
gcloud projects describe PROJECT_ID --format='value(projectNumber)'
Terraform
Untuk menggunakan terminal online dengan gcloud CLI yang sudah disiapkan, aktifkan Cloud Shell:
Di bagian bawah halaman ini, sesi Cloud Shell dimulai dan menampilkan perintah command line. Perlu waktu beberapa detik hingga sesi diinisialisasi.
Cloud Shell mendukung perintah
/dev/urandom
dalam tutorial ini yang menghasilkan angka pseudorandom.- Membuat atau memilih project Google Cloud.
-
Membuat project Google Cloud:
gcloud projects create PROJECT_ID
-
Pilih project Google Cloud yang Anda buat:
gcloud config set project PROJECT_ID
-
- Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
- Aktifkan Artifact Registry, Cloud Build,
Cloud Run, Cloud Storage, Eventarc,
dan Workflows API:
gcloud services enable artifactregistry.googleapis.com \ cloudbuild.googleapis.com \ eventarc.googleapis.com \ run.googleapis.com \ storage.googleapis.com \ workflows.googleapis.com
Buat akun layanan untuk alur kerja Anda yang akan digunakan untuk autentikasi dengan layanan Google Cloud lainnya dan berikan peran yang sesuai. Selain itu, untuk mendukung peristiwa langsung dari Cloud Storage, berikan peran Pub/Sub Publisher (
roles/pubsub.publisher
) ke agen layanan Cloud Storage, yaitu akun layanan yang dikelola Google.Ubah file
main.tf
Anda seperti yang ditunjukkan pada contoh berikut. Untuk mengetahui informasi lebih lanjut, baca dokumentasi Penyedia Google untuk Terraform.Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Perlu diperhatikan bahwa pada alur kerja Terraform biasa, Anda menerapkan seluruh rencana sekaligus. Namun, untuk tujuan tutorial ini, Anda dapat menargetkan resource tertentu. Contoh:
terraform apply -target="google_service_account.workflows"
- Jika Anda mengaktifkan agen layanan Cloud Pub/Sub pada atau sebelum
8 April 2021, untuk mendukung permintaan push Pub/Sub yang diautentikasi, berikan
peran
Service Account Token Creator (
roles/iam.serviceAccountTokenCreator
) ke akun layanan yang dikelola Google. Jika tidak, peran ini akan diberikan secara default:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com \ --role=roles/iam.serviceAccountTokenCreator
Ganti PROJECT_NUMBER
dengan nomor project
Google Cloud Anda. Anda dapat menemukan nomor project di halaman Welcome pada Google Cloud Console atau dengan menjalankan perintah berikut:
gcloud projects describe PROJECT_ID --format='value(projectNumber)'
Membuat tugas Cloud Run
Tutorial ini menggunakan contoh tugas Cloud Run dari GitHub. Tugas tersebut membaca data dari file input di Cloud Storage, dan melakukan beberapa pemrosesan arbitrer untuk setiap baris dalam file.
Dapatkan kode contoh dengan meng-clone repositori aplikasi contoh ke mesin lokal Anda:
git clone https://github.com/GoogleCloudPlatform/jobs-demos.git
Atau, Anda dapat mendownload contoh sebagai file ZIP dan mengekstraknya.
Ubah ke direktori yang berisi kode contoh:
cd jobs-demos/parallel-processing
Buat bucket Cloud Storage untuk menyimpan file input yang dapat digunakan untuk menulis dan memicu peristiwa:
Konsol
- Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.
- Klik add Create.
- Di halaman Create a bucket, masukkan nama untuk bucket Anda:
input-PROJECT_ID
GantiPROJECT_ID
dengan ID project Google Cloud Anda. - Pertahankan nilai default lainnya.
- Klik Create.
gcloud
Jalankan perintah
gcloud storage buckets create
:gcloud storage buckets create gs://input-PROJECT_ID
Jika permintaan berhasil, perintah akan menampilkan pesan berikut ini:
Creating gs://input-PROJECT_ID/...
Terraform
Untuk membuat bucket Cloud Storage, gunakan resource
google_storage_bucket
dan ubah filemain.tf
seperti ditunjukkan dalam contoh berikut.Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, baca Perintah Terraform dasar.
Perhatikan bahwa pada alur kerja Terraform biasa, Anda menerapkan seluruh rencana sekaligus. Namun, untuk tujuan tutorial ini, Anda dapat menargetkan resource tertentu. Contoh:
terraform apply -target="random_id.bucket_name_suffix"
dan
terraform apply -target="google_storage_bucket.default"
- Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.
Buat repositori standar Artifact Registry tempat Anda dapat menyimpan image container:
Konsol
Di konsol Google Cloud, buka halaman Repositories Artifact Registry:
Klik
Create repository.Masukkan nama untuk repositori—misalnya,
my-repo
. Untuk setiap lokasi repositori dalam sebuah project, nama repositori harus unik.Pertahankan format default yang seharusnya Docker.
Pertahankan mode default yang seharusnya Standar.
Untuk region, pilih us-central1 (Iowa).
Pertahankan semua nilai default lainnya.
Klik Create.
gcloud
Jalankan perintah:
gcloud artifacts repositories create REPOSITORY \ --repository-format=docker \ --location=us-central1
Ganti
REPOSITORY
dengan nama unik untuk repositori—misalnya,my-repo
. Untuk setiap lokasi repositori dalam project, nama repositori harus unik.Terraform
Untuk membuat repositori Artifact Registry, gunakan resource
google_artifact_registry_repository
dan ubah filemain.tf
Anda seperti ditunjukkan dalam contoh berikut.Perlu diperhatikan bahwa pada alur kerja Terraform biasa, Anda menerapkan seluruh rencana sekaligus. Namun, untuk tujuan tutorial ini, Anda dapat menargetkan resource tertentu. Contoh:
terraform apply -target="google_artifact_registry_repository.default"
Bangun image container menggunakan buildpack Google Cloud default:
export SERVICE_NAME=parallel-job gcloud builds submit \ --pack image=us-central1-docker.pkg.dev/PROJECT_ID/REPOSITORY/${SERVICE_NAME}
Ganti
REPOSITORY
dengan nama repositori Artifact Registry Anda.Diperlukan waktu beberapa menit untuk menyelesaikan build.
Buat tugas Cloud Run yang men-deploy image container:
Konsol
Di konsol Google Cloud, buka halaman Cloud Run:
Klik Buat tugas untuk menampilkan formulir Buat tugas.
- Dalam formulir, pilih
us-central1-docker.pkg.dev/PROJECT_ID/REPOSITORY/parallel-job:latest
sebagai URL image container Artifact Registry. - Opsional: Untuk nama lowongan, masukkan
parallel-job
. - Opsional: Untuk region, pilih us-central1 (Iowa).
- Untuk jumlah tugas yang ingin Anda jalankan dalam tugas, masukkan
10
. Semua tugas harus berhasil agar pekerjaan berhasil. Secara default, tugas dijalankan secara paralel.
- Dalam formulir, pilih
Luaskan bagian Container, Variables & Secrets, Connections, Security dan pertahankan semua setelan default, kecuali setelan berikut:
Klik tab General.
- Untuk perintah container, masukkan
python
. - Untuk argumen container, masukkan
process.py
.
- Untuk perintah container, masukkan
Klik tab Variabel & Secret.
- Klik Tambahkan variabel, dan masukkan
INPUT_BUCKET
untuk nama daninput-PROJECT_ID
untuk nilai. - Klik Tambahkan variabel, dan masukkan
INPUT_FILE
untuk nama daninput_file.txt
untuk nilai.
- Klik Tambahkan variabel, dan masukkan
Untuk membuat tugas, klik Buat.
gcloud
Jalankan perintah:
gcloud run jobs create parallel-job \ --image us-central1-docker.pkg.dev/PROJECT_ID/REPOSITORY/parallel-job \ --command python \ --args process.py \ --tasks 10 \ --set-env-vars=INPUT_BUCKET=input-PROJECT_ID,INPUT_FILE=input_file.txt
Untuk daftar lengkap opsi yang tersedia saat membuat tugas, lihat dokumentasi command line buat tugas gcloud run.
Setelah tugas dibuat, Anda akan melihat pesan yang menunjukkan berhasil.
Terraform
Untuk membuat tugas Cloud Run, gunakan resource
google_cloud_run_v2_job
dan ubah filemain.tf
Anda seperti ditunjukkan dalam contoh berikut.Perlu diperhatikan bahwa pada alur kerja Terraform biasa, Anda menerapkan seluruh rencana sekaligus. Namun, untuk tujuan tutorial ini, Anda dapat menargetkan resource tertentu. Contoh:
terraform apply -target="google_cloud_run_v2_job.default"
Men-deploy alur kerja yang menjalankan tugas Cloud Run
Tentukan dan deploy alur kerja yang menjalankan tugas Cloud Run yang baru saja Anda buat. Definisi alur kerja terdiri dari serangkaian langkah yang dijelaskan menggunakan sintaksis alur kerja.
Konsol
Di konsol Google Cloud, buka halaman Workflows:
Klik
Buat.Masukkan nama untuk alur kerja baru, seperti
cloud-run-job-workflow
.Untuk region, pilih us-central1 (Iowa).
Di kolom Service account, pilih akun layanan yang Anda buat sebelumnya.
Akun layanan berfungsi sebagai identitas alur kerja. Anda seharusnya sudah memberikan peran Cloud Run Admin ke akun layanan agar alur kerja dapat menjalankan tugas Cloud Run.
Klik Next.
Di editor alur kerja, masukkan definisi berikut untuk alur kerja Anda:
Klik Deploy.
gcloud
Buat file kode sumber untuk alur kerja Anda:
touch cloud-run-job-workflow.yaml
Salin definisi alur kerja berikut ke file kode sumber Anda:
Deploy alur kerja dengan memasukkan perintah berikut:
gcloud workflows deploy cloud-run-job-workflow \ --location=us-central1 \ --source=cloud-run-job-workflow.yaml \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Ganti kode berikut:
SERVICE_ACCOUNT_NAME
: nama akun layanan yang Anda buat sebelumnyaPROJECT_ID
: ID project Google Cloud Anda
Akun layanan berfungsi sebagai identitas alur kerja. Anda seharusnya sudah memberikan peran
roles/run.admin
ke akun layanan agar alur kerja dapat menjalankan tugas Cloud Run.
Terraform
Untuk membuat alur kerja, gunakan
resource google_workflows_workflow
dan ubah file main.tf
Anda seperti ditunjukkan dalam contoh berikut.
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Perhatikan bahwa dalam alur kerja Terraform pada umumnya, Anda menerapkan seluruh rencana sekaligus. Namun, untuk tujuan tutorial ini, Anda dapat menargetkan resource tertentu. Contoh:
terraform apply -target="google_workflows_workflow.default"
Alur kerja melakukan hal berikut:
Langkah
init
—Menerima peristiwa Cloud Storage sebagai argumen, lalu menetapkan variabel yang diperlukan.check_input_file
langkah—Memeriksa apakah bucket Cloud Storage yang ditentukan dalam peristiwa adalah bucket yang digunakan oleh tugas Cloud Run.- Jika ya, alur kerja akan melanjutkan ke langkah
run_job
. - Jika tidak, alur kerja akan dihentikan, sehingga pemrosesan lebih lanjut dihentikan.
- Jika ya, alur kerja akan melanjutkan ke langkah
Langkah
run_job
—Menggunakan metodegoogleapis.run.v1.namespaces.jobs.run
konektor Cloud Run Admin API untuk menjalankan tugas. Bucket Cloud Storage dan nama file data diteruskan sebagai variabel pengganti dari alur kerja ke tugas.Langkah
finish
—Menampilkan informasi tentang eksekusi tugas sebagai hasil dari alur kerja.
Membuat pemicu Eventarc untuk alur kerja
Untuk otomatis menjalankan alur kerja dan berganti tugas Cloud Run setiap kali file data input diperbarui, buat pemicu Eventarc yang merespons peristiwa Cloud Storage di bucket yang berisi file data input.
Konsol
Di konsol Google Cloud, buka halaman Workflows:
Klik nama alur kerja Anda, seperti
cloud-run-job-workflow
.Di halaman Workflow details, klik
Edit.Di halaman Edit Workflow, di bagian Triggers, klik Add new trigger > Eventarc.
Panel Pemicu Eventarc akan terbuka.
Di kolom Nama pemicu, masukkan nama untuk pemicu tersebut, seperti
cloud-run-job-workflow-trigger
.Dari daftar Event provider, pilih Cloud Storage.
Dari daftar Event, pilih google.cloud.storage.object.v1.finalized.
Di kolom Bucket, pilih bucket yang berisi file data input. Nama bucket memiliki format
input-PROJECT_ID
.Di kolom Service account, pilih akun layanan yang Anda buat sebelumnya.
Akun layanan berfungsi sebagai identitas pemicu. Anda seharusnya sudah memberikan peran berikut ke akun layanan:
- Penerima Peristiwa Eventarc: untuk menerima peristiwa
- Workflows Invoker: untuk menjalankan alur kerja
Klik Save trigger.
Pemicu Eventarc sekarang muncul di bagian Pemicu pada halaman Edit alur kerja.
Klik Next.
Klik Deploy.
gcloud
Buat pemicu Eventarc dengan menjalankan perintah berikut:
gcloud eventarc triggers create cloud-run-job-workflow-trigger \ --location=us \ --destination-workflow=cloud-run-job-workflow \ --destination-workflow-location=us-central1 \ --event-filters="type=google.cloud.storage.object.v1.finalized" \ --event-filters="bucket=input-PROJECT_ID" \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Ganti kode berikut:
PROJECT_ID
: ID project Google Cloud AndaSERVICE_ACCOUNT_NAME
: nama akun layanan yang Anda buat sebelumnya.
Akun layanan berfungsi sebagai identitas pemicu. Anda seharusnya sudah memberikan peran berikut ke akun layanan:
roles/eventarc.eventReceiver
: untuk menerima peristiwaroles/workflows.invoker
: untuk menjalankan alur kerja
Terraform
Untuk membuat pemicu, gunakan
resource google_eventarc_trigger
dan ubah file main.tf
Anda seperti yang ditunjukkan pada contoh berikut.
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Perhatikan bahwa dalam alur kerja Terraform pada umumnya, Anda menerapkan seluruh rencana sekaligus. Namun, untuk tujuan tutorial ini, Anda dapat menargetkan resource tertentu. Contoh:
terraform apply -target="google_eventarc_trigger.default"
Setiap kali file diupload atau ditimpa di bucket Cloud Storage yang berisi file data input, alur kerja akan dijalankan dengan peristiwa Cloud Storage yang sesuai sebagai argumen.
Memicu alur kerja
Uji sistem menyeluruh dengan memperbarui file data input di Cloud Storage.
Buat data baru untuk file input, lalu upload ke Cloud Storage di lokasi yang diharapkan oleh tugas Cloud Run:
base64 /dev/urandom | head -c 100000 >input_file.txt gsutil cp input_file.txt gs://BUCKET_NAME/input_file.txt
Ganti
BUCKET_NAME
dengan nama bucket Cloud Storage Anda.Jika membuat bucket Cloud Storage menggunakan Terraform, Anda dapat mengambil nama bucket dengan menjalankan perintah berikut:
gcloud storage buckets list gs://input*
Tugas Cloud Run dapat memerlukan waktu beberapa menit untuk dijalankan.
Pastikan tugas Cloud Run berjalan seperti yang diharapkan dengan melihat eksekusi tugas:
gcloud config set run/region us-central1 gcloud run jobs executions list --job=parallel-job
Anda akan melihat eksekusi tugas yang berhasil di output yang menunjukkan bahwa tugas
10/10
telah selesai.
Pelajari lebih lanjut cara memicu alur kerja dengan peristiwa atau pesan Pub/Sub.
Pembersihan
Jika Anda membuat project baru untuk tutorial ini, hapus project tersebut. Jika Anda menggunakan project yang ada dan ingin mempertahankannya tanpa perubahan yang ditambahkan dalam tutorial ini, hapus resource yang dibuat untuk tutorial.
Menghapus project
Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.
Untuk menghapus project:
- Di konsol Google Cloud, buka halaman Manage resource.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Menghapus resource tutorial
Hapus resource yang Anda buat dalam tutorial ini:
Hapus pemicu Eventarc:
gcloud eventarc triggers delete cloud-run-job-workflow-trigger --location=us
Hapus alur kerja:
gcloud workflows delete cloud-run-job-workflow --location=us-central1
Hapus tugas Cloud Run:
gcloud run jobs delete parallel-job
Hapus bucket Cloud Storage yang dibuat untuk data input:
gcloud storage rm --recursive gs://input-PROJECT_ID/
Hapus repositori Artifact Registry:
gcloud artifacts repositories delete REPOSITORY --location=us-central1