Cloud Run memungkinkan Anda menjalankan container stateless di lingkungan serverless. Dengan menggunakan Cloud Build, Anda dapat men-deploy image container dari Container Registry (Tidak digunakan lagi) dan Artifact Registry ke Cloud Run. Anda dapat men-deploy image yang ada, mem-build dan men-deploy image, atau mengotomatiskan deployment.
Sebelum memulai
-
Enable the Cloud Build, Cloud Run, Container Registry, and Resource Manager APIs.
Siapkan kode sumber aplikasi Anda. Kode sumber Anda harus disimpan di repositori, seperti Cloud Source Repositories, GitHub, atau Bitbucket.
Untuk menjalankan perintah
gcloud
di halaman ini, instal Google Cloud CLI.Jika Anda menggunakan Kontrol Layanan VPC, siapkan kumpulan pribadi di perimeter Kontrol Layanan VPC. Anda juga harus mengonfigurasi Cloud Run untuk Kontrol Layanan VPC.
Izin IAM yang diperlukan
Jika image Anda disimpan di project Google Cloud yang sama dengan project tempat Anda ingin men-deploynya atau jika image Anda publik di Container Registry, Anda memerlukan izin IAM berikut:
Untuk men-deploy ke Cloud Run, berikan peran Admin Cloud Run dan Pengguna Akun Layanan ke akun layanan yang Anda gunakan untuk build:
Buka halaman setelan Cloud Build di konsol Google Cloud:
Dari menu drop-down, pilih akun layanan yang perannya ingin Anda ubah.
Di panel izin akun Layanan, tetapkan status peran Admin Cloud Run ke ENABLED:
Di pop-up Mungkin diperlukan langkah tambahan, klik BERIKAN AKSES KE SEMUA AKUN LAYANAN.
Membangun dan men-deploy container
Cloud Build memungkinkan Anda mem-build image container, menyimpan image yang di-build di Container Registry, lalu men-deploy image ke Cloud Run.
Untuk mem-build dan men-deploy image container:
Di direktori utama project, buat file konfigurasi bernama
cloudbuild.yaml
.Dalam file konfigurasi build, tambahkan langkah build
docker
untuk mem-build image dan mengirimnya ke Container Registry, lalu tambahkan langkah buildgcloud
untuk memanggil perintahgcloud run deploy
guna men-deploy image di Cloud Run:steps: # Build the container image - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/PROJECT_ID/IMAGE', '.'] # Push the container image to Container Registry - name: 'gcr.io/cloud-builders/docker' args: ['push', 'gcr.io/PROJECT_ID/IMAGE'] # Deploy container image to Cloud Run - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: gcloud args: ['run', 'deploy', 'SERVICE_NAME', '--image', 'gcr.io/PROJECT_ID/IMAGE', '--region', 'SERVICE_REGION'] images: - gcr.io/PROJECT_ID/IMAGE
Dengan keterangan:
SERVICE_NAME
adalah nama layanan Cloud Run.SERVICE_REGION
adalah region layanan Cloud Run yang Anda deploy.PROJECT_ID
adalah project ID Google Cloud tempat image Anda disimpan.IMAGE
adalah nama image Anda di Container Registry.
Buka direktori utama project Anda dan jalankan perintah berikut, dengan
BUILD_REGION
adalah salah satu region build yang didukung untuk menjalankan build:gcloud builds submit --region=BUILD_REGION
Setelah berhasil diselesaikan, pesan berhasil akan ditampilkan beserta URL layanan yang di-deploy.
Deployment berkelanjutan
Anda dapat mengotomatiskan deployment software ke Cloud Run dengan membuat pemicu Cloud Build. Anda dapat mengonfigurasi pemicu untuk mem-build dan men-deploy image setiap kali mengupdate kode sumber.
Untuk mengotomatiskan deployment:
Di root repositori, tambahkan file konfigurasi bernama
cloudbuild.yaml
dengan langkah-langkah untuk mem-build image, mengirim image ke Container Registry, lalu memanggil perintahgcloud run deploy
:steps: # Build the container image - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/$PROJECT_ID/SERVICE_NAME:$COMMIT_SHA', '.'] # Push the container image to Container Registry - name: 'gcr.io/cloud-builders/docker' args: ['push', 'gcr.io/$PROJECT_ID/SERVICE_NAME:$COMMIT_SHA'] # Deploy container image to Cloud Run - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: gcloud args: - 'run' - 'deploy' - 'SERVICE_NAME' - '--image' - 'gcr.io/$PROJECT_ID/SERVICE_NAME:$COMMIT_SHA' - '--region' - 'SERVICE_REGION' images: - 'gcr.io/$PROJECT_ID/SERVICE_NAME:$COMMIT_SHA'
Dengan keterangan:
SERVICE_NAME
adalah nama layanan Cloud Run.SERVICE_REGION
adalah region layanan Cloud Run yang Anda deploy.
Penggunaan variabel substitusi
$COMMIT_SHA
diisi oleh Cloud Build saat dipicu dari repositori Git.Buat pemicu build dengan file konfigurasi yang dibuat di langkah sebelumnya:
Buka halaman Pemicu:
Klik Create Trigger.
Di kolom Nama, masukkan nama pemicu Anda.
Di bagian Region, pilih region untuk pemicu Anda.
Di bagian Peristiwa, pilih peristiwa repositori untuk memulai pemicu Anda.
Di bagian Sumber, pilih repositori dan cabang atau nama tag yang akan memulai pemicu Anda. Untuk informasi selengkapnya tentang menentukan cabang yang akan otomatis di-build, lihat Membuat pemicu build.
Di bagian Konfigurasi, pilih File konfigurasi Cloud Build (YAML atau JSON).
Di kolom Lokasi file konfigurasi Cloud Build, ketik
cloudbuild.yaml
setelah/
.Klik Buat untuk menyimpan pemicu build Anda.
Selesai! Mulai sekarang, setiap kali Anda melakukan push ke repositori, build dan deployment ke layanan Anda akan otomatis dipanggil.
Setiap kali Anda melakukan push kode baru ke repositori, Anda akan otomatis memicu build dan deployment ke layanan Cloud Run.
Untuk informasi selengkapnya tentang cara membuat pemicu Cloud Build, lihat Membuat dan mengelola pemicu build.
Menggunakan izin IAM minimal
Saat di-deploy dengan layanan Cloud Run, container dijalankan dengan identitas Akun Layanan Runtime di layanan Cloud Run. Karena Cloud Build dapat otomatis men-deploy container baru, Cloud Build harus dapat bertindak sebagaiAkun Layanan Runtime di layanan Cloud Run Anda.
Untuk memberikan akses terbatas pada Cloud Build guna men-deploy layanan Cloud Run:
Konsol
Buka halaman akun Layanan di konsol Google Cloud:
Klik alamat email akun Layanan Runtime layanan Cloud Run Anda (secara default, alamatnya adalah
PROJECT_NUMBER-compute@developer.gserviceaccount.com
).Klik tab Izin.
Klik
Berikan akses.Masukkan Akun Layanan Cloud Build (
PROJECT_NUMBER@cloudbuild.gserviceaccount.com
)Di menu dropdown Pilih peran, pilih peran Akun Layanan > Pengguna Akun Layanan.
Klik Simpan.
gcloud
Gunakan perintah gcloud iam service-accounts add-iam-policy-binding
, dengan
PROJECT_NUMBER
adalah ID numerik project Anda:
gcloud iam service-accounts add-iam-policy-binding \ PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --member="serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com" \ --role="roles/iam.serviceAccountUser"
Ganti PROJECT_NUMBER dengan ID numerik project Anda.
Jika Anda menggunakan Cloud Run dengan identitas layanan yang disesuaikan,
ganti PROJECT_NUMBER-compute@developer.gserviceaccount.com
dengan alamat akun
layanan Anda.
Lihat Izin deployment untuk informasi selengkapnya.
Contoh kode
Berikut adalah beberapa contoh repositori, yang masing-masing berisi aplikasi contoh dan file konfigurasi build untuk men-deploy aplikasi ke Cloud Run:
- deploy-prebuilt: Contoh kode yang menunjukkan cara men-deploy image bawaan ke Cloud Run.
- run-example-builddeploy: Contoh kode yang menunjukkan cara mem-build dan men-deploy image ke Cloud Run.
Langkah selanjutnya
- Pelajari cara menggunakan Cloud Deploy untuk men-deploy ke Cloud Run.
- Pelajari cara men-deploy di GKE.
- Pelajari cara men-deploy di Cloud Run Functions.
- Pelajari cara men-deploy di App Engine.
- Pelajari cara men-deploy di Firebase.
- Pelajari cara melakukan deployment blue/green di Compute Engine.
- Pelajari cara memecahkan masalah error build.