Imposta i pool di worker di compilazione (deployment dell'origine)

Quando esegui il deployment del codice sorgente in Cloud Run, questo viene archiviato in un bucket Cloud Storage. Cloud Build quindi compila automaticamente il codice in un'immagine container ed esegue il push dell'immagine in un registry di immagini. Ogni build viene eseguita su un proprio worker. Cloud Run importa l'immagine creata durante il deployment.

Se vuoi personalizzare il pool di worker di compilazione utilizzato da Cloud Build per un contesto di compilazione protetto da Controlli di servizio VPC, devi personalizzare il pool di worker. Questa pagina è pertinente per gli sviluppatori di piattaforme che eseguono il deployment dall'origine a Cloud Run, ad esempio quando eseguono il deployment di una funzione, e configurano i pool privati utilizzati da Cloud Build.

Prima di iniziare

Abilita l'API Cloud Build:

gcloud services enable cloudbuild.googleapis.com

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per eseguire il deployment dal codice sorgente, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:

Per un elenco dei ruoli e delle autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di Cloud Run. Se il servizio Cloud Run interagisce con le API Google Cloud, come le librerie client di Cloud, consulta la guida alla configurazione dell'identità del servizio. Per ulteriori informazioni sulla concessione dei ruoli, consulta le autorizzazioni di deployment e gestisci l'accesso.

Proteggi la tua build con i pool privati

Per impostazione predefinita, Cloud Build ha accesso a internet illimitato durante il processo di compilazione. Se hai configurato un perimetro Controlli di servizio VPC (VPC SC) e vuoi limitare l'accesso della compilazione solo alle dipendenze memorizzate all'interno del perimetro (ad esempio i pacchetti npm), puoi utilizzare la funzionalità Pool di worker privati di Cloud Build.

In generale, per configurare il pool privato:

  1. Crea il tuo pool di worker privato. Consulta Creazione e gestione dei pool privati.
  2. Configura il perimetro dei Controlli di servizio VPC. Consulta Utilizzo dei Controlli di servizio VPC.

  3. Se il pool di lavoro privato si trova in un progetto diverso rispetto al servizio Cloud Run, devi concedere all'agente di servizio (service-PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com) di Cloud Run il ruolo Utente pool di lavoro Cloud Build (cloudbuild.workerPoolUser) in modo che il servizio Cloud Build possa accedere al pool di lavoro.

    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

    Sostituisci:

    • PROJECT_NUMBER con il numero del progetto in cui viene eseguito il servizio.
    • PRIVATE_POOL_PROJECT_ID con l'ID del progetto in cui si trova il pool di worker. Per saperne di più, consulta Esecuzione delle build in un pool privato.
  4. Esegui il deployment del servizio dall'origine alla compilazione utilizzando un pool privato:

gcloud

Per specificare un pool privato da compilare durante il deployment dal codice sorgente:

gcloud beta run deploy SERVICE \
  --source . \
  --build-worker-pool WORKER_POOL

Sostituisci:

  • SERVICE con il nome del servizio.
  • WORKER_POOL con il nome del pool privato.

Se stai eseguendo il deployment di una funzione, aggiungi il flag --function con l'entry point alla funzione dal codice sorgente.

Eliminare i pool di worker di compilazione

Puoi eliminare i pool di worker di compilazione per i servizi esistenti.

gcloud

Per svuotare il pool di worker di Cloud Build per i deployment di origine:

gcloud beta run deploy SERVICE \
  --source . \
  --clear-build-worker-pool WORKER_POOL

Sostituisci:

  • SERVICE con il nome del servizio.
  • WORKER_POOL con il nome del pool privato da eliminare.