Esegui il deployment dei pool di worker dal codice sorgente

Questa pagina descrive come eseguire il deployment di un nuovo pool di worker o di una revisione del pool di worker in Cloud Run direttamente dal codice sorgente utilizzando un singolo comando gcloud CLI, gcloud run worker-pools deploy con il --source flag.

Dietro le quinte, questo comando utilizza i buildpack di Google Cloud e Cloud Build per creare automaticamente immagini container dal codice sorgente senza dover installare Docker sulla tua macchina o configurare buildpack o Cloud Build. Per impostazione predefinita, Cloud Run utilizza il tipo di macchina predefinito fornito da Cloud Build. L'esecuzione di gcloud run worker-pools deploy elimina la necessità di eseguire anche il gcloud builds submit comando.

Tieni presente che i deployment dall'origine utilizzano Artifact Registry per archiviare i container creati. Se il tuo progetto non ha già un repository Artifact Registry con il nome cloud-run-source-deploy nella regione in cui stai eseguendo il deployment, questa funzionalità crea automaticamente un repository Artifact Registry con il nome cloud-run-source-deploy.

Se nella directory del codice sorgente è presente un Dockerfile, il codice sorgente caricato viene creato utilizzando quel Dockerfile. Se nella directory del codice sorgente non è presente alcun Dockerfile, i buildpack di Google Cloud rilevano automaticamente la lingua che stai utilizzando e recuperano le dipendenze del codice per creare un'immagine container pronta per la produzione, utilizzando un'immagine di base sicura gestita da Google.

Prima di iniziare

  • Assicurati di aver configurato un nuovo progetto per Cloud Run come descritto nella pagina di configurazione.
  • Abilita l'API Cloud Run Admin.

    Ruoli necessari per abilitare le API

    Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin), che contiene l'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

    Abilitare l'API

    Dopo aver abilitato l'API Cloud Run Admin, viene creato automaticamente il account di servizio Compute Engine predefinito.

Ruoli obbligatori

Per eseguire il deployment dall'origine, tu o il tuo amministratore dovete concedere all'account di deployment i seguenti ruoli IAM.

Fai clic per visualizzare i ruoli richiesti per l'account di deployment

Per ottenere le autorizzazioni necessarie per creare ed eseguire il deployment dall'origine, chiedi all'amministratore di concederti i seguenti ruoli IAM ruoli:

Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di Cloud Run. Se il tuo pool di worker Cloud Run interagisce con Google Cloud API, come le librerie client Cloud, consulta la guida alla configurazione dell'identità del servizio. Per saperne di più sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestisci l'accesso.

Lingue supportate

Oltre alle origini con un Dockerfile, il deployment dall'origine supporta le seguenti lingue utilizzando i buildpack di Google Cloud:

  • Vai
  • Node.js
  • Python
  • Java
  • Kotlin
  • Groovy
  • Scala
  • .NET
  • Ruby
  • PHP

Scopri di più sulle versioni delle lingue supportate.

Esegui il deployment dall'origine con la build

Questa sezione descrive come utilizzare i buildpack di Google Cloud e Cloud Build per creare automaticamente immagini container dal codice sorgente senza dover installare Docker sulla tua macchina o configurare buildpack o Cloud Build.

Limitazioni

  • Il deployment dall'origine utilizza Artifact Registry e Cloud Build, pertanto questa funzionalità è disponibile solo nelle regioni supportate da Artifact Registry e Cloud Build.
  • Il deployment dall'origine è una funzionalità di praticità e non consente la personalizzazione completa della build. Per un maggiore controllo, crea l'immagine container utilizzando Cloud Build, ad esempio, utilizzando gcloud builds submit, quindi esegui il deployment dell'immagine container utilizzando, ad esempio, gcloud run worker-pools deploy --image.
  • Il deployment dall'origine con i buildpack di Google Cloud imposta la data dell'ultima modifica dei file di origine al 1° gennaio 1980. Questo è il comportamento predefinito dei buildpack ed è progettato per supportare build riproducibili. A seconda del framework linguistico, questo può influire sulla memorizzazione nella cache lato browser dei file statici. Se la tua applicazione è interessata da questo problema, Google consiglia di disabilitare le intestazioni HTTP etag e Last-Modified nell'applicazione.
  • Il deployment dall'origine con i buildpack di Google Cloud utilizza sempre gcr.io/buildpacks/builder:latest. Se la configurazione della lingua o del sistema operativo che preferisci non è disponibile in latest, utilizza un builder specifico per creare un'immagine dell'applicazione utilizzando il builder che preferisci.
  • Puoi eseguire il deployment del pool di worker dall'origine utilizzando Kotlin e altre lingue JVM come Java. La lingua che utilizzi deve rispettare le seguenti regole:

    • Puoi creare l'applicazione utilizzando Maven o Gradle.
    • Il file di build contiene tutti i plug-in necessari per produrre le classi.

Prima di eseguire il deployment con la build

Prima di eseguire il deployment dall'origine con la build:

  • Segui i passaggi descritti in Prima di iniziare.

  • Abilita l'API Cloud Build.

    Ruoli necessari per abilitare le API

    Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin), che contiene l'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

    Abilitare l'API

Ruoli obbligatori

Per eseguire il deployment dall'origine con la build, tu o il tuo amministratore dovete concedere al account di servizio Cloud Build i seguenti ruoli IAM.

Fai clic per visualizzare i ruoli richiesti per il account di servizio Cloud Build

Per impostazione predefinita, Cloud Build utilizza il service account Compute Engine predefinito come account di servizio Cloud Build predefinito per creare il codice sorgente e la risorsa Cloud Run, a meno che tu non sostituisca questo comportamento. Affinché Cloud Build possa creare le tue origini, chiedi all'amministratore di concedere Cloud Run Builder (roles/run.builder) al account di servizio Compute Engine predefinito sul tuo progetto:

  gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
      --role=roles/run.builder
  

Sostituisci PROJECT_NUMBER con il tuo Google Cloud numero del progetto e PROJECT_ID con il tuo Google Cloud ID progetto. Per istruzioni dettagliate su come trovare l'ID progetto e il numero del progetto, consulta Creazione e gestione dei progetti.

La propagazione della concessione del ruolo Cloud Run Builder al account di servizio Compute Engine predefinito richiede alcuni minuti per propagarsi.

Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di Cloud Run. Se il tuo pool di worker Cloud Run interagisce con Google Cloud API, come le librerie client Cloud, consulta la guida alla configurazione dell'identità del servizio. Per saperne di più sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestisci l'accesso.

Esegui il deployment con la build

Per eseguire il deployment dal codice sorgente:

  1. Nella Google Cloud console, attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della Google Cloud console viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già inclusa e installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.

  2. Passa alla directory di origine. La directory di origine utilizza un Dockerfile, se presente, anche se non è obbligatorio.

  3. Crea ed esegui il deployment del pool di worker:

    gcloud run worker-pools deploy WORKERPOOL --source .
    Sostituisci WORKERPOOL con il nome che vuoi assegnare al pool di worker.

  4. Rispondi y a tutti i prompt per installare le API richieste. Devi farlo una sola volta per un progetto. Rispondi agli altri prompt fornendo la piattaforma e la regione, se non hai impostato i valori predefiniti per questi elementi come descritto nella pagina di configurazione.

  5. Attendi il completamento della build e del deployment. Al termine, Cloud Run visualizza un messaggio di operazione riuscita.

Automatizzare la creazione dall'origine

Come best practice per evitare modifiche non versionate nell'origine locale, Google consiglia di eseguire automaticamente il deployment quando le modifiche vengono eseguite con il push nel repository Git. Per semplificare questa operazione, puoi connettere e configurare il deployment continuo al pool di worker Cloud Run. Connettendo i repository GitHub a Cloud Run, puoi configurare le build ed eseguire il deployment dei repository senza scrivere Dockerfile o file di build.

Passaggi successivi

Dopo aver eseguito il deployment di un pool di worker Cloud Run, puoi: