Cloud Run consente di eseguire immagini stateless in un ambiente serverless. Utilizzando Cloud Build, puoi eseguire il deployment delle immagini da Artifact Registry a Cloud Run. Puoi eseguire il deployment di un'immagine esistente, creare ed eseguire il deployment di un'immagine o automatizzare il deployment.
Prima di iniziare
Abilita le API Cloud Build, Cloud Run, Artifact Registry e Resource Manager.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (
roles/serviceusage.serviceUsageAdmin), che contiene l'autorizzazioneserviceusage.services.enable. Scopri come concedere i ruoli.
Prepara il codice sorgente dell'applicazione. Il codice sorgente deve essere archiviato in un repository come GitHub o Bitbucket.
Per eseguire i
gcloudcomandi in questa pagina, installa il Google Cloud CLI.Se utilizzi i Controlli di servizio VPC, allora configura un pool privato nel perimetro dei Controlli di servizio VPC. Devi anche configurare Cloud Run per i Controlli di servizio VPC.
Autorizzazioni Identity and Access Management richieste
-
Nella Google Cloud console, vai alla settings pagina Autorizzazioni di Cloud Build:
Per il service account Cloud Build specificato o per il service account Cloud Build predefinito, imposta lo stato dei seguenti ruoli su Abilitato:
- Amministratore di Cloud Run (
roles/run.admin) | Consente a Cloud Build di eseguire il deployment di nuovi servizi in Cloud Run.- Nel riquadro Assegna ruolo utente account di servizio, scegli un service account di cui simulare l'identità e fai clic su Concedi autorizzazione.
- Amministratore Storage (
roles/storage.admin) | Consente la lettura e la scrittura da Cloud Storage. - Artifact Registry Writer (
roles/artifactregistry.writer) | Consente di eseguire il pull delle immagini da Artifact Registry e di scriverle in Artifact Registry. - Writer log (
roles/logging.logWriter) | Consente di scrivere le voci di log in Cloud Logging. - Editor di Cloud Build (
roles/cloudbuild.builds.editor) | Consente al account di servizio di eseguire le build.
- Amministratore di Cloud Run (
Creazione ed esecuzione del deployment di un'immagine
Cloud Build consente di creare un'immagine, archiviarla in Artifact Registry ed eseguirne il deployment in Cloud Run.
Per creare ed eseguire il deployment di un'immagine:
Nella directory principale del progetto, crea un file di configurazione denominato
cloudbuild.yaml.Nel file di configurazione della build, aggiungi
dockerpassaggi di build per creare l'immagine ed eseguirne il push in Artifact Registry, quindi aggiungi ungcloudpassaggio di build per richiamare ilgcloud run deploycomando per eseguire il deployment dell'immagine in Cloud Run:steps: # Build the image - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE', '.'] # Push the image to Artifact Registry - name: 'gcr.io/cloud-builders/docker' args: ['push', 'LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE'] # Deploy image to Cloud Run - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: gcloud args: ['run', 'deploy', 'SERVICE_NAME', '--image', 'LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE', '--region', 'SERVICE_REGION'] images: - 'LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE'Dove:
REPOSITORYè il nome del repository Artifact Registry da cui esegui il deployment dell'immagine.LOCATIONè la località del repository Artifact Registry, ad esempious-east1.PROJECT_IDè l'ID progetto in cui è archiviata l'immagine. Google CloudSERVICE_NAMEè il nome del servizio Cloud Run.SERVICE_REGIONè la regione del servizio Cloud Run di cui stai eseguendo il deployment.IMAGEè il nome dell'immagine in Artifact Registry.
Vai alla directory principale del progetto ed esegui il comando seguente, dove
LOCATIONè una delle regioni di build supportate per eseguire la build:gcloud builds submit --region=LOCATION
Al termine, viene visualizzato un messaggio di operazione riuscita insieme all'URL del servizio di cui è stato eseguito il deployment.
Deployment continuo
Puoi automatizzare il deployment del software in Cloud Run creando trigger di Cloud Build. Puoi configurare i trigger per creare ed eseguire il deployment delle immagini ogni volta che aggiorni il codice sorgente.
Per automatizzare il deployment:
Nella radice del repository, aggiungi un file di configurazione denominato
cloudbuild.yamlcon i passaggi per creare l'immagine, eseguirne il push in Artifact Registry e quindi richiamare il comandogcloud run deploy:steps: # Build the image - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE/SERVICE_NAME:$COMMIT_SHA', '.'] # Push the image to Artifact Registry - name: 'gcr.io/cloud-builders/docker' args: ['push', 'LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE/SERVICE_NAME:$COMMIT_SHA'] # Deploy image to Cloud Run - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: gcloud args: - 'run' - 'deploy' - 'SERVICE_NAME' - '--image' - 'LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE/SERVICE_NAME:$COMMIT_SHA' - '--region' - 'SERVICE_REGION' images: - 'LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE/SERVICE_NAME:$COMMIT_SHA'Dove:
REPOSITORYè il nome del repository Artifact Registry da cui esegui il deployment dell'immagine.LOCATIONè la località del repository Artifact Registry, ad esempious-east1.PROJECT_IDè l'ID progetto in cui è archiviata l'immagine. Google CloudSERVICE_NAMEè il nome del servizio Cloud Run.SERVICE_REGIONè la regione del servizio Cloud Run di cui stai eseguendo il deployment.IMAGEè il nome dell'immagine in Artifact Registry.
La variabile di sostituzione
$COMMIT_SHAviene compilata da Cloud Build quando viene attivata da un repository Git.Crea un trigger di build con il file di configurazione creato nel passaggio precedente:
Apri la pagina Trigger:
Fai clic su Crea trigger.
Nel campo Nome, inserisci un nome per il trigger.
In Regione, seleziona la regione per il trigger.
In Evento, seleziona l'evento del repository per avviare il trigger.
In Origine, seleziona il repository e il nome del ramo o del tag che avvierà il trigger. Per ulteriori informazioni su come specificare i rami di cui eseguire la build automatica, consulta Creare un trigger di build.
In Configurazione, seleziona File di configurazione di Cloud Build (YAML o JSON).
Nel campo Posizione file di configurazione Cloud Build, digita
cloudbuild.yamldopo il carattere/.Fai clic su Crea per salvare il trigger di build.
Ora, quando esegui il push di nuovo codice nel repository, Cloud Build richiama una build ed esegue il deployment del servizio in Cloud Run.
Per ulteriori informazioni sulla creazione di trigger di Cloud Build, consulta Creare e gestire trigger di build.
Esempi di codice
Di seguito sono riportati alcuni repository di esempio, ognuno dei quali contiene un'applicazione di esempio e un file di configurazione della build per eseguire il deployment dell'applicazione in Cloud Run:
- deploy-prebuilt: un esempio di codice che mostra come eseguire il deployment di un'immagine predefinita in Cloud Run.
- run-example-builddeploy: un esempio di codice che mostra come creare ed eseguire il deployment di un'immagine in Cloud Run.
Passaggi successivi
- Scopri come utilizzare Cloud Deploy per eseguire il deployment in Cloud Run.
- Scopri come eseguire il deployment su GKE.
- Scopri come eseguire il deployment su Cloud Run Functions.
- Scopri come eseguire il deployment su App Engine.
- Scopri come eseguire il deployment su Firebase.
- Scopri come eseguire deployment blu/verdi su Compute Engine.
- Scopri come risolvere gli errori di build.