Questa pagina spiega come eseguire il deployment delle applicazioni in Cloud Run Functions utilizzando Cloud Build. Se non hai mai utilizzato Cloud Build, leggi prima le guide rapide e la panoramica della configurazione di compilazione.
Cloud Run Functions è un ambiente di esecuzione serverless per la creazione e la connessione di servizi cloud. Con Cloud Run Functions puoi scrivere funzioni a uso specifico che vengono collegate agli eventi generati dall'infrastruttura e dai servizi cloud. La funzione viene attivata quando viene generato un evento monitorato. Per ulteriori informazioni su Cloud Run Functions, consulta la documentazione di Cloud Run Functions.
Prima di iniziare
Abilita l'API Cloud Run Functions:
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.
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 Attivato:
- Sviluppatore Cloud Functions (
roles/cloudfunctions.developer) | Per eseguire il deployment e gestire le funzioni.- Nel riquadro Assegna ruolo Utente account di servizio, scegli un service account di cui eseguire lo spoofing e poi fai clic su Concedi autorizzazione.
- Amministratore Cloud Run (
roles/run.admin) | Consente al account di servizio Cloud Build di eseguire il deployment di nuove versioni in Cloud Run. - 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 scriverci. - Writer log (
roles/logging.logWriter) | Consente di scrivere voci di log in Cloud Logging. - Editor Cloud Build (
roles/cloudbuild.builds.editor) | Consente al account di servizio di eseguire le build.
- Sviluppatore Cloud Functions (
Configurazione del deployment
Cloud Build ti consente di utilizzare qualsiasi immagine container disponibile pubblicamente per eseguire le tue attività. Per farlo, specifica l'immagine in un step di build nel file di configurazione di Cloud Build.
Cloud Run Functions fornisce il comando gcloud functions deploy, che esegue il deployment della funzione dalla directory contenente il codice della funzione.
Puoi utilizzare l'immagine
cloud-sdk
come passaggio di build nel file di configurazione per richiamare i comandi gcloud all'interno dell'immagine.
Gli argomenti passati a questo passaggio di build vengono passati direttamente a Google Cloud CLI, consentendoti di eseguire qualsiasi comando gcloud in questa immagine.
Per eseguire il deployment di un'applicazione in Cloud Run Functions:
- Nella directory principale del progetto, crea il
file di configurazione di compilazione di Cloud Build
denominato
cloudbuild.yamlocloudbuild.json. Nel file di configurazione:
- Aggiungi un campo
namee specifica il passaggio di buildgcloud. - Aggiungi
functions deployal campoargsper richiamare il comandogcloud functions deploy. Per le opzioni di configurazione disponibili, consulta il riferimentogcloud functions deploy. --source=.implica che il codice sorgente si trova nella directory di lavoro corrente.
YAML
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' args: - gcloud - functions - deploy - FUNCTION_NAME - --region=FUNCTION_REGION - --source=. - --trigger-http - --runtime=RUNTIMEJSON
{ "steps": [ { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "args": [ "gcloud", "functions", "deploy", [ "FUNCTION_NAME" ], "--region=FUNCTION_REGION", "--source=.", "--trigger-http", "--runtime=RUNTIME" ] } ] }Sostituisci i valori dei segnaposto nel file di configurazione sopra con i seguenti:
FUNCTION_NAMEè il nome di Cloud Run Functions di cui stai eseguendo il deployment. Se stai aggiornando una funzione esistente, questo valore deve corrispondere al nome della funzione che stai aggiornando.FUNCTION_REGIONè la regione in cui stai eseguendo il deployment di Cloud Run Functions. Per un elenco delle regioni supportate, consulta Località di Cloud Run Functions.--trigger-httpè il tipo di trigger per questa funzione, in questo caso una richiesta HTTP (webhook).RUNTIMEè il runtime in cui eseguire la funzione.
Per ulteriori informazioni sull'utilizzo di
gcloud functions deploy, consulta la documentazione di Cloud Run Functions.- Aggiungi un campo
Avvia la build utilizzando il file di configurazione creato nel passaggio precedente:
gcloud builds submit --region=REGION --config CONFIG_FILE_PATH SOURCE_DIRECTORYSostituisci i valori dei segnaposto nel file di configurazione sopra con i seguenti:
CONFIG_FILE_PATHè il percorso del file di configurazione della build.SOURCE_DIRECTORYè il percorso o l'URL del codice sorgente.REGIONè una delle regioni di build supportate.
Se non specifichi un
CONFIG_FILE_PATHe unSOURCE_DIRECTORYnel comandogcloud builds submit, Cloud Build presuppone che il file di configurazione e il codice sorgente si trovino nella directory di lavoro corrente.
Deployment continuo
Puoi automatizzare il deployment del software in Cloud Run Functions 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 in Cloud Run Functions:
Nella radice del repository, aggiungi un file di configurazione con i passaggi per richiamare il comando
gcloud functions deploy:YAML
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' args: - gcloud - functions - deploy - FUNCTION_NAME - --region=FUNCTION_REGION - --source=. - --trigger-http - --runtime=RUNTIMEJSON
{ "steps": [ { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "args": [ "gcloud", "functions", "deploy", [ "FUNCTION_NAME" ], "--region=FUNCTION_REGION", "--source=.", "--trigger-http", "--runtime=RUNTIME" ] } ] }Sostituisci i valori dei segnaposto nel file di configurazione sopra con i seguenti:
FUNCTION_NAMEè il nome di Cloud Run Functions di cui stai eseguendo il deployment. Se stai aggiornando una funzione esistente, questo valore deve corrispondere al nome della funzione che stai aggiornando.FUNCTION_REGIONè la regione in cui stai eseguendo il deployment di Cloud Run Functions. Per un elenco delle regioni supportate, consulta Località di Cloud Run Functions.--trigger-httpè il tipo di trigger per questa funzione, in questo caso una richiesta HTTP (webhook).RUNTIMEè il runtime in cui eseguire la funzione.
Crea un trigger di build con il file di configurazione creato nel passaggio precedente:
Apri la pagina Trigger nella Google Cloud console:
Seleziona il tuo progetto dal menu a discesa del selettore di progetti nella parte superiore della pagina.
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.
Ogni volta che esegui il push di nuovo codice nel repository, viene attivata automaticamente una build e un deployment in Cloud Run Functions.
Per ulteriori informazioni sulla creazione di trigger di Cloud Build, consulta Creare e gestire i trigger di build.
Passaggi successivi
- Scopri come eseguire i deployment blu/verde su Compute Engine
- Scopri come eseguire il deployment su Cloud Run
- Scopri come eseguire il deployment su GKE
- Scopri come eseguire il deployment su Firebase
- Scopri come eseguire il deployment su App Engine
- Scopri come risolvere gli errori di build.