Esegui il deployment di una funzione

Questa guida mostra come eseguire il deployment di una funzione dal codice sorgente utilizzando il comando gcloud functions. Per scoprire come eseguire il deployment di una funzione utilizzando il comando gcloud run, consulta Eseguire il deployment di una funzione Cloud Run utilizzando gcloud CLI.

Il processo di deployment prende il codice sorgente e le impostazioni di configurazione e crea un'immagine eseguibile che Cloud Run Functions gestisce automaticamente per gestire le richieste alla tua funzione.

Nozioni di base sul deployment

Per un'introduzione al tipo di funzioni che puoi eseguire il deployment, consulta Scrivere funzioni Cloud Run.

Gli utenti che eseguono il deployment delle funzioni devono disporre del ruolo IAM Sviluppatore Cloud Functions o di un ruolo che includa le stesse autorizzazioni. Vedi anche Configurazione aggiuntiva per il deployment.

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Utilizza il comando gcloud functions deploy per eseguire il deployment di una funzione:

    gcloud functions deploy YOUR_FUNCTION_NAME \
       --region=YOUR_REGION \
       --runtime=YOUR_RUNTIME \
       --source=YOUR_SOURCE_LOCATION \
       --entry-point=YOUR_CODE_ENTRYPOINT \
       TRIGGER_FLAGS
    

    Il primo argomento, YOUR_FUNCTION_NAME, è un nome per la funzione di cui è stato eseguito il deployment. Il nome della funzione deve iniziare con una lettera seguita da un massimo di 62 lettere, numeri, trattini o trattini bassi e deve terminare con una lettera o un numero. Il nome del servizio Cloud Run creato per la tua funzione sostituirà i trattini bassi con trattini e le lettere maiuscole verranno convertite in minuscole. Ad esempio, Function_1 riceverà il nome function-1 in Cloud Run.

    • Il flag --region specifica la regione in cui eseguire il deployment della funzione. Consulta Località per un elenco delle regioni supportate da Cloud Run.

    • Il flag --runtime specifica il runtime della lingua utilizzato dalla funzione. Consulta la sezione Supporto del runtime per un elenco degli ID runtime supportati.

    • Il flag --source specifica la posizione del codice sorgente della funzione.

    • Il flag --entry-point specifica il punto di ingresso della funzione nel codice sorgente. Questo è il codice che verrà eseguito quando viene eseguita la funzione. Il valore di questo flag deve essere un nome di funzione o un nome di classe completo esistente nel codice sorgente. Per ulteriori informazioni, vedi Punto di ingresso della funzione.

    • Per specificare il trigger per la tua funzione, sono necessari flag aggiuntivi (rappresentati come TRIGGER_FLAGS sopra), a seconda del trigger che vuoi utilizzare:

      Flag di attivazione Descrizione trigger
      --trigger-http Attiva la funzione con una richiesta HTTP(S).
      --trigger-topic=YOUR_PUBSUB_TOPIC Attiva la funzione quando un messaggio viene pubblicato nell'argomento Pub/Sub specificato.
      --trigger-bucket=YOUR_STORAGE_BUCKET Attiva la funzione quando un oggetto viene creato o sovrascritto nel bucket Cloud Storage specificato.
      --trigger-event-filters=EVENTARC_EVENT_FILTERS Attiva la funzione con Eventarc quando si verifica un evento che corrisponde ai filtri specificati.

      Per un riferimento completo al comando di deployment e ai relativi flag, consulta la documentazione gcloud functions deploy.

      Per ulteriori dettagli sui flag di configurazione di gcloud functions deploy, consulta la documentazione di Cloud Run.

  3. Al termine del deployment, le funzioni vengono visualizzate con un segno di spunta verde nella pagina Panoramica di Cloud Run nella consoleGoogle Cloud .

    Il deployment iniziale di una funzione potrebbe richiedere diversi minuti, mentre viene eseguito il provisioning dell'infrastruttura sottostante. Il redeployment di una funzione esistente è più rapido e il traffico in entrata viene migrato automaticamente alla versione più recente.

    URL endpoint HTTP

    Quando crei una funzione con il comando gcloud functions o l'API Cloud Functions v2, per impostazione predefinita la funzione ha un URL endpoint HTTP cloudfunctions.net. Se prendi questa funzione ed esegui il deployment su Cloud Run, la funzione riceve anche un URL dell'endpoint HTTP run.app. Tuttavia, le funzioni create in Cloud Run non avranno un URL dell'endpoint HTTP cloudfunctions.net. L'URL cloudfunctions.net e l'URL run.app di una funzione si comportano esattamente allo stesso modo. Sono intercambiabili e vengono utilizzati per attivare la funzione.

    Esempi di Terraform

    Per esempi su come eseguire il deployment di funzioni utilizzando Terraform, consulta Esempio HTTP di Terraform ed Esempio Pub/Sub di Terraform.

    Configurazione del networking

    Le funzioni create utilizzando l'API Cloud Functions v2 (ad esempio utilizzando gcloud functions, l'API REST o Terraform) possono essere gestite con l'API Cloud Run Admin e con l'API Cloud Functions v2.

    Per scoprire di più sulla gestione delle reti per le funzioni, incluso come instradare il traffico di rete VPC, consulta Best practice per il networking di Cloud Run.

    Scopri come eseguire il deployment di Cloud Run Functions su Cloud Run

    Il deployment delle funzioni su Cloud Run è simile ai passaggi descritti in questo documento, ma con alcuni vantaggi aggiuntivi: