Saat Anda men-deploy kode sumber ke Cloud Run, sumber tersebut disimpan di bucket Cloud Storage. Cloud Build kemudian secara otomatis membangun kode Anda ke dalam image container dan mengirimkan image tersebut ke registry image. Setiap build berjalan di pekerjaannya sendiri. Cloud Run mengimpor image yang di-build saat men-deploy.
Jika ingin menyesuaikan pool worker build yang digunakan Cloud Build untuk konteks build yang diamankan Kontrol Layanan VPC, Anda dapat menyesuaikan pool worker. Halaman ini relevan bagi developer platform yang men-deploy
layanan atau
fungsi Cloud Run dari sumber menggunakan Google Cloud CLI,
dan mengonfigurasi pool pribadi yang digunakan oleh Cloud Build. Flag gcloud CLI build worker pool didukung untuk deployment sumber (--source
), dan tidak didukung untuk deployment image container (--image
).
Sebelum memulai
-
Enable the Cloud Run Admin API and Cloud Build APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.Setelah Cloud Run Admin API diaktifkan, akun layanan default Compute Engine akan dibuat secara otomatis.
Peran yang diperlukan
Anda atau administrator Anda harus memberikan peran IAM berikut kepada akun deployer dan akun layanan Cloud Build.
Klik untuk melihat peran yang diperlukan untuk akun deployer
Untuk mendapatkan izin yang Anda perlukan untuk membangun dan men-deploy dari sumber, minta administrator untuk memberi Anda peran IAM berikut:
- Cloud Run Source Developer (
roles/run.sourceDeveloper
) di project Anda - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer
) di project Anda - Pengguna Akun Layanan (
roles/iam.serviceAccountUser
) pada identitas layanan Cloud Run
Klik untuk melihat peran yang diperlukan untuk akun layanan Cloud Build
Cloud Build secara otomatis menggunakan
akun layanan default Compute Engine sebagai akun layanan Cloud Build default untuk membangun kode sumber dan
resource Cloud Run, kecuali jika Anda mengganti perilaku ini. Agar Cloud Build dapat membangun sumber Anda, minta administrator Anda untuk memberikan peran Cloud Run Builder (roles/run.builder
) ke akun layanan default Compute Engine di project Anda:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@ \ --role=roles/run.builder
Ganti PROJECT_NUMBER
dengan Google Cloud
nomor project Anda, dan PROJECT_ID
dengan Google Cloud
project ID Anda. Untuk mengetahui petunjuk mendetail tentang cara menemukan project ID dan nomor project, lihat Membuat dan mengelola project.
Pemberian peran builder Cloud Run ke akun layanan default Compute Engine memerlukan waktu beberapa menit untuk berlaku.
Untuk mengetahui daftar peran dan izin IAM yang terkait dengan Cloud Run, lihat Peran IAM Cloud Run dan Izin IAM Cloud Run. Jika layanan 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.
Mengamankan build dengan pool pribadi
Secara default, Cloud Build memiliki akses internet tak terbatas selama proses build. Jika Anda telah menyiapkan perimeter Kontrol Layanan VPC (VPC SC) dan ingin membatasi akses build hanya ke dependensi yang disimpan di dalam perimeter (misalnya, paket npm), Anda dapat menggunakan fitur pool worker pribadi Cloud Build.
Secara umum, ikuti langkah-langkah berikut untuk menyiapkan pool pribadi:
- Membuat pool worker pribadi. Lihat Membuat dan mengelola pool pribadi.
Konfigurasi perimeter Kontrol Layanan VPC Anda. Baca Menggunakan Kontrol Layanan VPC.
Jika pool worker pribadi Anda berada dalam project yang berbeda dengan layanan Cloud Run, Anda perlu memberikan peran Cloud Build WorkerPool User (
cloudbuild.workerPoolUser
) ke Agen Layanan Cloud Run (service-PROJECT_NUMBER@serverless-robot-prod.
) agar layanan Cloud Build dapat mengakses pool worker.gcloud projects add-iam-policy-binding PRIVATE_POOL_PROJECT_ID \ --member serviceAccount:service-PROJECT_NUMBER@serverless-robot-prod. \ --role roles/cloudbuild.workerPoolUser
Ganti:
- PROJECT_NUMBER dengan nomor project tempat layanan berjalan.
- PRIVATE_POOL_PROJECT_ID dengan ID project tempat worker pool berada. Lihat Menjalankan build di pool pribadi untuk mengetahui informasi selengkapnya.
Deploy layanan Anda dari sumber untuk membangun menggunakan pool pribadi:
gcloud
Untuk menentukan pool pribadi yang akan digunakan saat men-deploy dari kode sumber, gunakan flag
--build-worker-pool
:gcloud run deploy SERVICE \ --source . \ --build-worker-pool WORKER_POOL
Ganti:
- SERVICE dengan nama layanan Anda.
- WORKER_POOL dengan nama kumpulan pribadi.
Jika Anda men-deploy fungsi, tambahkan flag
--function
dengan titik entri fungsi dari kode sumber Anda.
Menghapus kumpulan pekerja build
Anda dapat menghapus kumpulan pekerja build untuk layanan yang ada.
gcloud
Untuk menghapus kumpulan pekerja Cloud Build untuk deployment sumber, gunakan
flag --clear-build-worker-pool
:
gcloud run deploy SERVICE \ --source . \ --clear-build-worker-pool WORKER_POOL
Ganti:
- SERVICE dengan nama layanan Anda.
- WORKER_POOL dengan nama kumpulan pribadi yang ingin Anda hapus.
Jika Anda men-deploy fungsi, tambahkan flag --function
dengan
titik entri fungsi dari kode sumber Anda.