Menetapkan kumpulan pekerja build (deploy sumber)

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 worker-nya sendiri. Cloud Run mengimpor image yang di-build saat men-deploy.

Jika Anda ingin menyesuaikan pool worker build yang digunakan Cloud Build untuk konteks build yang diamankan Kontrol Layanan VPC, Anda akan menyesuaikan pool worker. Halaman ini relevan untuk developer platform yang men-deploy Cloud Run layanan atau fungsi dari sumber menggunakan Google Cloud CLI, dan mengonfigurasi pool pribadi yang digunakan oleh Cloud Build. Flag gcloud CLI pool worker build didukung untuk deployment sumber (--source), dan tidak didukung untuk deployment image container (--image).

Sebelum memulai

  • 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 izin serviceusage.services.enable. Pelajari cara memberikan peran.

    Aktifkan API

    Setelah Cloud Run Admin API diaktifkan, akun layanan default Compute Engine akan dibuat secara otomatis.

Peran yang diperlukan

Anda atau administrator harus memberikan peran IAM berikut ke akun deployer dan akun layanan Cloud Build.

Klik untuk melihat peran yang diperlukan untuk akun deployer

Untuk mendapatkan izin yang diperlukan untuk mem-build dan men-deploy dari sumber, minta administrator untuk memberi Anda peran IAM berikut:

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 mem-build kode sumber dan resource Cloud Run, kecuali jika Anda mengganti perilaku ini. Agar Cloud Build dapat mem-build sumber Anda, minta administrator untuk memberikan 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@developer.gserviceaccount.com \
      --role=roles/run.builder
  

Ganti PROJECT_NUMBER dengan nomor project Anda Google Cloud, dan PROJECT_ID dengan ID project Anda Google Cloud. Untuk mengetahui petunjuk mendetail tentang cara menemukan ID project dan nomor project, lihat Membuat dan mengelola project.

Pemberian peran builder Cloud Run ke akun layanan default Compute Engine memerlukan waktu beberapa menit untuk diterapkan.

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 Cloud Client Libraries, 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 (SC VPC) 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:

  1. Buat pool worker pribadi. Lihat Membuat dan mengelola pool pribadi.
  2. Konfigurasi perimeter Kontrol Layanan VPC Anda. Baca Menggunakan Kontrol Layanan VPC.

  3. Jika pool worker pribadi Anda berada dalam project yang berbeda dengan layanan Cloud Run Anda, Anda perlu memberikan peran Cloud Build WorkerPool User (cloudbuild.workerPoolUser) ke Cloud Run Service Agent (service-PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com) 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.iam.gserviceaccount.com \
        --role roles/cloudbuild.workerPoolUser

    Ganti:

    • PROJECT_NUMBER dengan nomor project tempat layanan berjalan.
    • PRIVATE_POOL_PROJECT_ID dengan ID project tempat pool worker berada. Lihat Menjalankan build di pool pribadi untuk mengetahui informasi selengkapnya.
  4. Deploy layanan Anda dari sumber untuk mem-build menggunakan pool pribadi:

    gcloud

    Untuk menentukan pool pribadi yang akan di-build 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 pool pribadi.

    Jika Anda men-deploy fungsi, tambahkan flag --function dengan titik entri fungsi dari kode sumber Anda.

Menghapus pool worker build

Anda dapat menghapus pool worker build untuk layanan yang ada.

gcloud

Untuk menghapus pool worker 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 pool pribadi yang ingin Anda hapus.

Jika Anda men-deploy fungsi, tambahkan flag --function dengan titik entri fungsi dari kode sumber Anda.