Membangun dan membuat tugas Shell di Cloud Run
Sebelum memulai
- 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.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Buat atau pilih Google Cloud project.
Peran yang diperlukan untuk memilih atau membuat project
- Pilih project: Memilih project tidak memerlukan peran IAM tertentu—Anda dapat memilih project mana pun yang telah diberi peran.
-
Membuat project: Untuk membuat project, Anda memerlukan peran Pembuat Project
(
roles/resourcemanager.projectCreator), yang berisi izinresourcemanager.projects.create. Pelajari cara memberikan peran.
-
Buat Google Cloud project:
gcloud projects create PROJECT_ID
Ganti
PROJECT_IDdengan nama untuk Google Cloud project yang Anda buat. -
Pilih project Google Cloud yang Anda buat:
gcloud config set project PROJECT_ID
Ganti
PROJECT_IDdengan nama project Google Cloud Anda.
-
Jika Anda menggunakan project yang sudah ada untuk panduan ini, pastikan Anda memiliki izin yang diperlukan untuk menyelesaikan panduan ini. Jika berhasil membuat project baru, berarti Anda sudah memiliki izin yang diperlukan.
-
Verifikasi bahwa penagihan diaktifkan untuk project Google Cloud Anda.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Buat atau pilih Google Cloud project.
Peran yang diperlukan untuk memilih atau membuat project
- Pilih project: Memilih project tidak memerlukan peran IAM tertentu—Anda dapat memilih project mana pun yang telah diberi peran.
-
Membuat project: Untuk membuat project, Anda memerlukan peran Pembuat Project
(
roles/resourcemanager.projectCreator), yang berisi izinresourcemanager.projects.create. Pelajari cara memberikan peran.
-
Buat Google Cloud project:
gcloud projects create PROJECT_ID
Ganti
PROJECT_IDdengan nama untuk Google Cloud project yang Anda buat. -
Pilih project Google Cloud yang Anda buat:
gcloud config set project PROJECT_ID
Ganti
PROJECT_IDdengan nama project Google Cloud Anda.
-
Jika Anda menggunakan project yang sudah ada untuk panduan ini, pastikan Anda memiliki izin yang diperlukan untuk menyelesaikan panduan ini. Jika berhasil membuat project baru, berarti Anda sudah memiliki izin yang diperlukan.
-
Verifikasi bahwa penagihan diaktifkan untuk project Google Cloud Anda.
-
Aktifkan Cloud Run Admin API dan Cloud Build 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.gcloud services enable run.googleapis.com
cloudbuild.googleapis.com Setelah Cloud Run Admin API diaktifkan, akun layanan default Compute Engine akan dibuat secara otomatis.
- Tinjau harga Cloud Run atau perkirakan biaya dengan kalkulator harga.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk menyelesaikan panduan memulai ini, minta administrator untuk memberi Anda peran IAM berikut:
-
Cloud Run Admin (
roles/run.admin) di project -
Cloud Run Source Developer (
roles/run.sourceDeveloper) di project -
Pengguna Akun Layanan (
roles/iam.serviceAccountUser) di identitas layanan -
Logs Viewer (
roles/logging.viewer) di project
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Memberi akun layanan Cloud Build akses ke project Anda
Cloud Build otomatis menggunakan akun layanan default Compute Engine sebagai akun layanan Cloud Build default untuk membangun kode sumber dan resource Cloud Run Anda, kecuali jika Anda mengganti perilaku ini.
Agar Cloud Build dapat membangun sumber Anda, berikan peran Cloud Run
Builder
(roles/run.builder) di project Anda kepada akun layanan Cloud Build:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:SERVICE_ACCOUNT_EMAIL_ADDRESS \ --role=roles/run.builder
Ganti PROJECT_ID dengan project ID Google Cloud
Anda dan SERVICE_ACCOUNT_EMAIL_ADDRESS dengan alamat email akun layanan Cloud Build. Jika Anda menggunakan akun layanan default Compute Engine sebagai akun layanan Cloud Build, gunakan format berikut untuk alamat email akun layanan:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Ganti PROJECT_NUMBER dengan nomor project Google Cloud
Anda.
Untuk mengetahui petunjuk mendetail tentang cara menemukan project ID dan nomor project Anda, lihat Membuat dan mengelola project.
Pemberian peran builder Cloud Run memerlukan waktu beberapa menit untuk diterapkan.
Menulis contoh tugas
Menulis tugas Cloud Run yang menjalankan skrip Shell:
Buat sebuah direktori baru bernama
jobsdan ubah ke direktori tersebut:mkdir jobs cd jobsBuat file Dockerfile dengan konten berikut:
Dalam direktori yang sama, buat file
script.shuntuk kode tugas yang sebenarnya. Salin baris contoh berikut ke dalamnya:Tugas Cloud Run mengizinkan pengguna untuk menentukan jumlah tugas yang akan dijalankan oleh tugas tersebut. Kode contoh ini menunjukkan cara menggunakan variabel lingkungan
CLOUD_RUN_TASK_INDEXbawaan. Setiap tugas mewakili satu salinan container yang berjalan. Perhatikan bahwa tugas-tugas biasanya dijalankan secara paralel. Menggunakan beberapa tugas akan berguna jika setiap tugas dapat memproses subset data Anda secara independen.Setiap tugas mengetahui indeksnya, yang disimpan dalam variabel lingkungan
CLOUD_RUN_TASK_INDEX. Variabel lingkunganCLOUD_RUN_TASK_COUNTbawaan berisi jumlah tugas yang disediakan pada waktu eksekusi tugas melalui parameter--tasks.Kode yang ditampilkan juga menunjukkan cara mencoba ulang tugas, menggunakan variabel lingkungan
CLOUD_RUN_TASK_ATTEMPTbawaan yang berisi berapa kali tugas ini telah dicoba ulang, mulai dari 0 untuk upaya pertama dan bertambah 1 untuk setiap percobaan ulang berturut-turut yang berhasil, hingga--max-retries.Kode ini juga memungkinkan Anda menghasilkan kegagalan sebagai cara untuk menguji percobaan ulang dan membuat log error sehingga Anda dapat melihat seperti apa tampilannya.
Kode Anda telah lengkap dan siap untuk dikemas dalam container.
Bangun container tugas, kirim ke Artifact Registry, lalu deploy ke Cloud Run
Panduan memulai ini menggunakan deploy dari sumber, yang membuat container, mengunggahnya ke Artifact Registry, dan men-deploy tugas tersebut ke Cloud Run:
gcloud run jobs deploy job-quickstart \ --source . \ --tasks 50 \ --set-env-vars SLEEP_MS=10000 \ --set-env-vars FAIL_RATE=0.1 \ --max-retries 5 \ --region REGION \ --project=PROJECT_ID
dengan PROJECT_ID sebagai project ID Anda dan REGION adalah region Anda
, misalnya, europe-west1. Perhatikan bahwa Anda dapat mengubah berbagai parameter menjadi nilai apa pun yang ingin Anda gunakan untuk tujuan pengujian Anda. SLEEP_MS menyimulasikan pekerjaan dan FAIL_RATE menyebabkan X% tugas gagal sehingga Anda dapat bereksperimen dengan paralelisme dan mencoba ulang tugas yang gagal.
Menjalankan tugas di Cloud Run
Untuk menjalankan tugas yang baru saja Anda buat:
gcloud run jobs execute job-quickstart --region REGION
Ganti REGION dengan region yang Anda gunakan saat membuat dan men-deploy
tugas, misalnya europe-west1.
Pembersihan
Untuk menghindari biaya tambahan pada akun Google Cloud Anda, hapus semua resource yang Anda deploy dengan panduan memulai ini.
Menghapus repositori Anda
Cloud Run hanya mengenakan biaya untuk waktu eksekusi tugas Anda. Namun, Anda mungkin tetap dikenai biaya atas penyimpanan image container di Artifact Registry. Untuk menghapus repositori Artifact Registry, ikuti langkah-langkah di Menghapus repositori dalam dokumentasi Artifact Registry.
Menghapus tugas Anda
Tugas Cloud Run hanya menimbulkan biaya saat tugas sedang dieksekusi. Untuk menghapus tugas Cloud Run, ikuti salah satu langkah berikut:
Konsol
Untuk menghapus tugas:
Di konsol Google Cloud , buka Cloud Run:
Temukan tugas yang ingin Anda hapus dalam daftar tugas, lalu klik kotak centang tugas tersebut untuk memilihnya.
Klik Hapus. Tindakan ini akan menghentikan semua eksekusi tugas yang sedang berlangsung dan semua instance container yang sedang berjalan.
gcloud
Untuk menghapus tugas, jalankan perintah berikut:
gcloud run jobs delete JOB_NAME
Ganti JOB_NAME dengan nama tugas.
Menghapus project pengujian Anda
Menghapus project Google Cloud akan menghentikan penagihan untuk semua resource dalam project tersebut. Untuk melepaskan semua Google Cloud resource di project Anda, ikuti langkah-langkah berikut:
Menghapus Google Cloud project:
gcloud projects delete PROJECT_ID
Langkah berikutnya
Untuk informasi lebih lanjut dalam mem-build container dari kode sumber dan penerapan untuk repositori, lihat: