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 Esegui il deployment di una funzione Cloud Run utilizzando gcloud CLI.

Il processo di deployment utilizza il codice sorgente e le impostazioni di configurazione per creare un'immagine eseguibile gestita automaticamente da Cloud Run Functions per elaborare le richieste alla tua funzione.

Nozioni di base sul deployment

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

Gli utenti che eseguono il deployment delle funzioni devono disporre del ruolo IAM Cloud Functions Developer o di un ruolo che includa le stesse autorizzazioni. Consulta 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 hai 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. Nel nome del servizio Cloud Run creato per la tua funzione, i trattini bassi vengono sostituiti con trattini e le lettere maiuscole vengono convertite in minuscole. Ad esempio, il nome assegnato a Function_1 in Cloud Run sarà function-1.

    • 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 del linguaggio utilizzato dalla funzione. Consulta 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 l'entry point 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 saperne di più, consulta Entry point della funzione.

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

      Flag di trigger 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 per il comando di deployment e i relativi flag, consulta la documentazione gcloud functions deploy.

      Per maggiori 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, durante i quali viene eseguito il provisioning dell'infrastruttura sottostante. Quando riesegui il deployment di una funzione esistente, l'operazione è più rapida 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 esegui il deployment di questa funzione su Cloud Run, 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 delle funzioni utilizzando Terraform, consulta Esempio HTTP di Terraform ed Esempio Pub/Sub di Terraform.

    Configura il networking

    Puoi gestire le funzioni create utilizzando l'API Cloud Functions v2 (ad esempio utilizzando gcloud functions, l'API REST o Terraform) sia con l'API Cloud Run Admin che con l'API Cloud Functions v2.

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

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

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