Esegui il deployment di una funzione Cloud Run (1ª generazione.)

Questa guida mostra come eseguire il deployment di una funzione Cloud Run legacy di 1ª generazione. dal codice sorgente. Se stai creando una nuova funzione, consulta la guida rapida della console su Cloud Run.

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

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

Esegui il deployment di una funzione utilizzando gcloud CLI come segue:

  1. 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 seguita da un massimo di 62 lettere, numeri, trattini o trattini bassi e deve terminare con una lettera o un numero.

    • Il flag --gen2 specifica che vuoi eseguire il deployment su Cloud Run Functions. A partire da settembre 2024, questa impostazione diventerà quella predefinita. Per il deployment su 1ª generazione, utilizza --no-gen2.

    • 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. Cloud Run Functions supporta diversi runtime. Per saperne di più, consulta Runtime.

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

    • 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 saperne di più, consulta Entry point 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). Per saperne di più, consulta la sezione Trigger HTTP.
      --trigger-topic=YOUR_PUBSUB_TOPIC Attiva la funzione quando un messaggio viene pubblicato nell'argomento Pub/Sub specificato. Per ulteriori informazioni, consulta Trigger Pub/Sub.
      --trigger-bucket=YOUR_STORAGE_BUCKET Attiva la funzione quando un oggetto viene creato o sovrascritto nel bucket Cloud Storage specificato. Per maggiori informazioni, consulta Trigger Cloud Storage.
      --trigger-event=EVENT_TYPE
      [--trigger-resource=RESOURCE]
      Attiva la funzione quando si verifica l'evento specificato. La specifica di una risorsa è obbligatoria per alcuni tipi di evento. Per saperne di più, consulta Trigger supportati in Cloud Run Functions (1ª generazione.).

      Facoltativamente, puoi specificare ulteriori opzioni 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 gcloud functions deploy.

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

Deployment dal computer locale

Questa sezione descrive come utilizzare gcloud CLI per eseguire il deployment di una funzione dal codice sorgente che si trova 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 deployment 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 Struttura della directory di origine. Se questo flag viene omesso, viene utilizzata la directory di lavoro corrente.

    Puoi anche utilizzare facoltativamente il flag --stage-bucket per specificare un bucket Cloud Storage in cui caricare il codice sorgente nell'ambito del deployment.

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

  3. Esegui il deployment da Cloud Storage

    Questa sezione descrive come utilizzare gcloud CLI per eseguire il deployment di una funzione dal codice sorgente che si trova in un bucket Cloud Storage. Il codice sorgente deve essere compresso come file ZIP.

    Affinché le funzioni Cloud Run possano leggere da un bucket Cloud Storage, devi concedere l'autorizzazione storage.objects.get all'account che esegue il deployment.

    Consulta Utilizzare le autorizzazioni IAM nella documentazione di Cloud Storage per informazioni sul controllo dell'accesso ai bucket.

    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 deployment 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 root del file ZIP. Consulta la sezione Struttura della directory di origine.

    3. 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 da Cloud Run Functions, consulta Trigger di Cloud Run Functions.

      Funzione HTTP dal codice sorgente locale

      Supponiamo di avere una funzione HTTP come segue:

      • La funzione utilizza Node.js 20.
      • Il codice sorgente si trova nella directory di lavoro corrente (.).
      • Il punto di ingresso nel codice è denominato myHttpFunction.

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

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

      Funzione Pub/Sub dal codice sorgente in Cloud Storage

      Supponiamo di avere una funzione basata sugli eventi come segue:

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

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

      gcloud functions deploy my-pubsub-function \
        --no-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 di avere una funzione basata sugli eventi come segue:

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

      Per eseguire il deployment della funzione in Cloud Run Functions con il nome my-storage-function nella regione asia-northeast1 e fare in modo che la funzione venga attivata dagli eventi nel bucket Cloud Storage my-bucket, utilizza il comando seguente:

      gcloud functions deploy my-storage-function \
        --no-gen2 \
        --region=asia-northeast1 \
        --runtime=java17 \
        --source=./functions/storage-function \
        --entry-point=myproject.StorageFunction \
        --trigger-resource=gs://my-bucket \
        --trigger-event=google.storage.object.delete
      

      Passaggi successivi