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 pekerjanya sendiri. Cloud Run mengimpor image yang di-build saat men-deploy.
Jika ingin menyesuaikan kumpulan pekerja build yang digunakan Cloud Build untuk konteks build yang diamankan Kontrol Layanan VPC, Anda harus menyesuaikan kumpulan pekerja. Halaman ini relevan bagi developer platform yang men-deploy dari sumber ke Cloud Run, termasuk saat men-deploy fungsi, dan mengonfigurasi kumpulan pribadi yang digunakan oleh Cloud Build.
Sebelum memulai
Aktifkan Cloud Build API:
gcloud services enable cloudbuild.googleapis.com
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk men-deploy dari sumber, minta administrator untuk memberi Anda peran IAM berikut pada project Anda:
-
Cloud Run Source Developer (
roles/run.sourceDeveloper
) -
Service Account User (
roles/iam.serviceAccountUser
)
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 kumpulan pekerja pribadi Cloud Build.
Secara umum, ikuti langkah-langkah berikut untuk menyiapkan pool pribadi:
- Membuat pool worker pribadi. Lihat Membuat dan mengelola kumpulan pribadi.
Konfigurasi perimeter Kontrol Layanan VPC Anda. Baca Menggunakan Kontrol Layanan VPC.
Jika pool pekerja pribadi Anda berada dalam project yang berbeda dengan layanan Cloud Run, Anda perlu memberikan peran Cloud Build WorkerPool User (
cloudbuild.workerPoolUser
) kepada Agen Layanan Cloud Run (service-PROJECT_NUMBER@serverless-robot-prod.
) agar layanan Cloud Build dapat mengakses pool pekerja.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 pekerja berada. Lihat Menjalankan build di kumpulan pribadi untuk mengetahui informasi selengkapnya.
Deploy layanan Anda dari sumber untuk mem-build menggunakan pool pribadi:
gcloud
Untuk menentukan pool pribadi yang akan dibuat saat men-deploy dari kode sumber:
gcloud beta 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 ke 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:
gcloud beta 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.