Esegui il deployment di una funzione Cloud Run

Questa guida mostra come eseguire il deployment di una funzione Cloud Run dal codice sorgente.

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

Nozioni di base sul deployment

Gli utenti che eseguono il deployment delle funzioni Cloud Run devono disporre del ruolo IAM Sviluppatore di Cloud Functions 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 \
     --gen2 \
     --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 followed 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 funzione sostituirà i trattini bassi con i trattini e le lettere maiuscole verranno convertite in minuscole. Ad esempio,Function_1 avrà il nome function-1 in Cloud Run.

    • Il flag --gen2 (facoltativo) specifica che vuoi eseguire il deployment in Cloud Run Functions.

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

    • Il flag --runtime specifica il runtime della lingua utilizzato dalla funzione. Le funzioni Cloud Run supportano diversi runtime. Per ulteriori informazioni, consulta Runtime.

    • Il flag --source specifica la posizione del codice sorgente della funzione. Per maggiori dettagli, consulta le seguenti sezioni:

    • 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 funzione o un nome classe completo esistente nel tuo codice sorgente. Per ulteriori informazioni, consulta Entry point della funzione.

    • Per specificare l'attivatore per la funzione, sono necessari flag aggiuntivi (rappresentati come TRIGGER_FLAGS sopra), a seconda dell'attivatore che vuoi utilizzare:

      Flag di attivazione Descrizione trigger
      --trigger-http Attiva la funzione con una richiesta HTTP(S). Per ulteriori informazioni, consulta Trigger HTTP.
      --trigger-topic=YOUR_PUBSUB_TOPIC Attiva la funzione quando viene pubblicato un messaggio nell'argomento Pub/Sub specificato. Per ulteriori informazioni, consulta la sezione relativa agli attivatori Pub/Sub.
      --trigger-bucket=YOUR_STORAGE_BUCKET Attiva la funzione quando viene creato o sovrascritto un oggetto nel bucket Cloud Storage specificato. Per ulteriori informazioni, consulta Trigger Cloud Storage.
      --trigger-event-filters=EVENTARC_EVENT_FILTERS Attiva la funzione con Eventarc quando si verifica un evento corrispondente ai filtri specificati. Per ulteriori informazioni e opzioni, consulta la sezione Trigger Eventarc.

      Facoltativamente, puoi specificare opzioni aggiuntive di configurazione, networking e sicurezza quando esegui il deployment di una funzione.

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

      Per alcuni comandi di deployment di esempio, consulta Esempi di riga di comando.

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

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

Esegui il deployment dal computer locale

Questa sezione descrive come eseguire il deployment di una funzione dal codice sorgente situato sulla tua macchina locale.

  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. Segui le istruzioni di implementazione riportate sopra utilizzando il comando gcloud functions deploy.

    Per il flag --source, specifica un percorso del file system locale alla directory radice del codice sorgente della funzione. Consulta la struttura della directory di origine. Se questo flag viene omesso, viene utilizzata la directory di lavoro corrente.

    Se vuoi, puoi anche utilizzare il flag --stage-bucket per specificare un bucket Cloud Storage in cui caricare il codice sorgente durante il deployment.

    Durante il caricamento del codice sorgente, Cloud Run Functions esclude i file non necessari tramite il file .gcloudignore.

Esegui il deployment da Cloud Storage

Questa sezione descrive come eseguire il deployment di una funzione dal codice sorgente situato in un bucket Cloud Storage. Il codice sorgente deve essere pacchettizzato come file ZIP.

Affinché le funzioni Cloud Run possano leggere da un bucket Cloud Storage, l'agente di servizio delle funzioni Cloud Run deve disporre dell'autorizzazione storage.objects.get. Se il bucket di origine si trova nello stesso progetto della funzione, l'autorizzazione viene concessa automaticamente. Se il bucket si trova in un progetto diverso, devi concedere l'autorizzazione all'agente di servizio manualmente.

Per informazioni sul controllo dell'accesso ai bucket, consulta Utilizzare le autorizzazioni IAM nella documentazione di Cloud Storage.

Con questa autorizzazione ora puoi eseguire il deployment di una funzione da Cloud Storage:

  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. Segui le istruzioni di implementazione riportate sopra utilizzando il comando gcloud functions deploy.

    Per il flag --source, specifica un percorso Cloud Storage che inizi con gs://. L'oggetto nel percorso deve essere un file ZIP contenente il codice sorgente della funzione. I file di origine della funzione devono trovarsi nella directory principale del file ZIP; consulta la sezione Struttura della directory di origine.

Esempi di riga di comando

Questa sezione mostra i comandi di deployment per alcuni scenari di deployment di esempio.

Per informazioni dettagliate sui diversi trigger supportati dalle funzioni Cloud Run, consulta Trigger delle funzioni Cloud Run.

Funzione HTTP dal codice sorgente locale

Supponiamo che tu abbia una funzione HTTP come segue:

  • La funzione utilizza nodejs22.
  • Il codice sorgente si trova nella directory di lavoro corrente (.).
  • Il punto di ingresso nel codice si chiama myHttpFunction.

Per eseguire il deployment della funzione con il nome my-http-function nella regione us-central1, utilizza il seguente comando:

gcloud functions deploy my-http-function \
  --gen2 \
  --region=us-central1 \
  --runtime=nodejs22 \
  --source=. \
  --entry-point=myHttpFunction \
  --trigger-http

Funzione Pub/Sub dal codice sorgente in Cloud Storage

Supponiamo che tu abbia una funzione basata sugli eventi come segue:

  • La funzione gestisce gli eventi di pubblicazione dei messaggi Pub/Sub.
  • La funzione utilizza python312.
  • Il codice sorgente si trova in Cloud Storage nel percorso. gs://my-bucket/my_function_source.zip.
  • Il punto di ingresso nel codice si chiama pubsub_handler.

Per eseguire il deployment della funzione con il nome my-pubsub-function nella regione europe-west1 e attivarla tramite i messaggi nell'argomento Pub/Sub my-topic, utilizza il seguente comando:

gcloud functions deploy my-pubsub-function \
  --gen2 \
  --region=europe-west1 \
  --runtime=python312 \
  --source=gs://my-bucket/my_function_source.zip \
  --entry-point=pubsub_handler \
  --trigger-topic=my-topic

Funzione Cloud Storage dal codice sorgente locale

Supponiamo che tu abbia una funzione basata sugli eventi come segue:

  • La funzione gestisce gli eventi di eliminazione degli oggetti Cloud Storage.
  • La funzione utilizza java21.
  • Il codice sorgente si trova localmente nel percorso ./functions/storage-function.
  • Il punto di ingresso nel codice si chiama myproject.StorageFunction.

Per eseguire il deployment della funzione con il nome my-storage-function nella regione asia-northeast1 e attivarla tramite eventi nel my-bucket bucket Cloud Storage, utilizza il seguente comando:

gcloud functions deploy my-storage-function \
  --gen2 \
  --region=asia-northeast1 \
  --runtime=java21 \
  --source=./functions/storage-function \
  --entry-point=myproject.StorageFunction \
  --trigger-event-filters="type=google.cloud.storage.object.v1.deleted" \
  --trigger-event-filters="bucket=my-bucket"

Passaggi successivi