Deployment in Cloud Functions

Questa pagina spiega come eseguire il deployment di applicazioni in Cloud Functions utilizzando Cloud Build. Se non hai mai utilizzato Cloud Build, leggi prima le guide rapide e la panoramica della configurazione di build.

Cloud Functions è un ambiente di esecuzione serverless per la creazione e la connessione di servizi cloud. Con Cloud Functions puoi scrivere funzioni semplici a uso specifico collegate a eventi emessi dall'infrastruttura e dai servizi cloud. La funzione viene attivata quando viene attivato un evento controllato. Per ulteriori informazioni su Cloud Functions, consulta la documentazione di Cloud Functions.

Prima di iniziare

  • Abilita l'API Cloud Functions:

    Abilita l'API Cloud Functions

  • Concedi il ruolo Sviluppatore Cloud Functions all'account di servizio Cloud Build:

    1. Apri la pagina Impostazioni di Cloud Build:

      Apri la pagina Impostazioni di Cloud Build

    2. Imposta lo stato del ruolo Sviluppatore Cloud Functions su Abilitato.

  • Per eseguire i comandi gcloud in questa pagina, installa Google Cloud CLI.

  • Tieni a portata di mano il codice sorgente dell'applicazione che vuoi creare ed eseguire il deployment in Cloud Functions. Il codice sorgente deve essere archiviato in un repository, ad esempio Cloud Source Repositories, GitHub o Bitbucket.

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 una build step nel file di configurazione di Cloud Build.

Cloud 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 Functions, segui questi passaggi:

  1. Nella directory root del progetto, crea il file di configurazione di Cloud Build con il nome cloudbuild.yaml o cloudbuild.json.
  2. Nel file di configurazione:

    • Aggiungi un campo name e specifica il passaggio di build gcloud.
    • Aggiungi functions deploy al campo args per richiamare il comando gcloud functions deploy. Per le opzioni di configurazione disponibili, consulta la documentazione di riferimento di gcloud 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=RUNTIME
    

    JSON

    {
     "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 segnaposto nel file di configurazione precedente con quanto segue:

    • FUNCTION_NAME è il nome delle funzioni Cloud 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 esegui il deployment di Cloud Functions. Per un elenco delle regioni supportate, vedi Località di Cloud Functions.
    • --trigger-http è il tipo di attivatore 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 Functions.

  3. Avvia la build utilizzando il file di configurazione creato nel passaggio precedente:

     gcloud builds submit --region=REGION --config CONFIG_FILE_PATH SOURCE_DIRECTORY
    

    Sostituisci i valori segnaposto nel file di configurazione precedente con quanto segue:

    • 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 CONFIG_FILE_PATH e SOURCE_DIRECTORY nel comando gcloud builds submit, Cloud Build presume che il file di configurazione e il codice sorgente si trovino nella directory di lavoro attuale.

Deployment continuo

Puoi automatizzare il deployment del tuo software in Cloud 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 Functions:

  1. Nella root 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=RUNTIME
    

    JSON

    {
     "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 segnaposto nel file di configurazione precedente con quanto segue:

    • FUNCTION_NAME è il nome delle funzioni Cloud 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 Functions. Per un elenco delle regioni supportate, vedi Località di Cloud Functions.
    • --trigger-http è il tipo di attivatore per questa funzione, in questo caso una richiesta HTTP (webhook).
    • RUNTIME è il runtime in cui eseguire la funzione.
  2. Crea un trigger di build con il file di configurazione creato nel passaggio precedente:

    1. Apri la pagina Attivatori nella console Google Cloud:

      Apri la pagina Attivatori

    2. Seleziona il progetto dal menu a discesa del selettore di progetti nella parte superiore della pagina.

    3. Fai clic su Crea attivatore.

    4. Nel campo Nome, inserisci un nome per l'attivatore.

    5. In Regione, seleziona la regione per l'attivatore.

    6. In Evento, seleziona l'evento del repository per avviare il trigger.

    7. In Origine, seleziona il repository e il nome del ramo o del tag che avvierà l'attivatore. Per saperne di più sulla specifica dei rami da compilare automaticamente, consulta Creazione di un trigger di build.

    8. In Configurazione, seleziona File di configurazione di Cloud Build (YAML o JSON).

    9. Nel campo Posizione file di configurazione di Cloud Build, digita cloudbuild.yaml dopo /.

    10. Fai clic su Crea per salvare il trigger di build.

Ogni volta che esegui il push di un nuovo codice nel tuo repository, attivi automaticamente una build e ne esegui il deployment su Cloud Functions.

Per ulteriori informazioni sulla creazione dei trigger di Cloud Build, consulta Creazione e gestione dei trigger di build.

Passaggi successivi