Esegui il deployment di una funzione Cloud Functions
Questa guida illustra come eseguire il deployment di una Cloud Function da codice sorgente.
Il processo di deployment prende il codice sorgente e le impostazioni di configurazione e crea un'immagine eseguibile che Cloud Functions gestisce automaticamente per gestire le richieste alla funzione.
Nozioni di base sul deployment
Gli utenti che eseguono il deployment di Cloud Functions devono avere il ruolo IAM Sviluppatore Cloud Functions o un ruolo che includa le stesse autorizzazioni. Vedi anche Configurazione aggiuntiva per il deployment.
Seleziona una scheda per visualizzare le istruzioni per eseguire il deployment di una funzione utilizzando gcloud CLI o la console Google Cloud.
gcloud
-
Nella console Google Cloud, attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.
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 della 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.Il flag
--gen2
specifica che vuoi eseguire il deployment su Cloud Functions (2nd gen). Questo flag è necessario per il deployment iniziale di una funzione di 2ª generazione.Il flag
--region
specifica la regione in cui eseguire il deployment della funzione. Consulta Località per un elenco delle regioni supportate da Cloud Functions.Il flag
--runtime
specifica il runtime del linguaggio utilizzato dalla funzione. Cloud Functions supporta diversi runtime. Per ulteriori informazioni, consulta Runtime.Il flag
--source
specifica la posizione del codice sorgente della funzione. Per informazioni dettagliate, 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 il nome di una funzione o un nome completo di classe esistente nel codice sorgente. Per ulteriori informazioni, consulta Punto di ingresso alla funzione.Per specificare l'trigger per la funzione, sono necessari flag aggiuntivi (rappresentati come
TRIGGER_FLAGS
sopra), a seconda dell'attivatore che vuoi utilizzare:
Flag di trigger 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 Trigger Pub/Sub. --trigger-bucket=YOUR_STORAGE_BUCKET
Attiva la funzione quando un oggetto viene creato o sovrascritto nel bucket Cloud Storage specificato. Per ulteriori informazioni, consulta i trigger di Cloud Storage. --trigger-event-filters=EVENTARC_EVENT_FILTERS
Attiva la funzione con Eventarc quando si verifica un evento corrispondente ai filtri specificati. Richiede la specifica del flag --gen2
. Per ulteriori informazioni e opzioni aggiuntive, consulta i trigger Eventarc.Facoltativamente, puoi specificare ulteriori opzioni di configurazione, networking e sicurezza quando esegui il deployment di una funzione.
Per un riferimento completo sul comando deployment e sui suoi flag, consulta la documentazione di
gcloud functions deploy
.Per alcuni comandi di deployment di esempio, vedi Esempi di riga di comando.
Console
Vai alla pagina Panoramica di Cloud Functions nella console Google Cloud:
Assicurati che sia selezionato il progetto Google Cloud in cui eseguire il deployment di Cloud Functions.
Fai clic su Crea funzione.
Nel campo Ambiente, seleziona 2a generazione.
Nel campo Nome funzione, inserisci un nome per la funzione. 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 campo Regione, seleziona una regione in cui eseguire il deployment della funzione.
Nella sezione Trigger, segui i passaggi in base all'ambiente selezionato:
- Nel campo Tipo di attivatore, seleziona l'attivatore che vuoi utilizzare:
- Per un trigger HTTPS, seleziona l'opzione appropriata a seconda che tu voglia consentire chiamate non autenticate della tua funzione. Ogni funzione di 2ª generazione ha un endpoint per i trigger HTTP(S). Per impostazione predefinita, è richiesta l'autenticazione. Per ulteriori informazioni, consulta Autenticazione per le chiamate.
- Per una funzione basata su eventi, scegli una delle opzioni Cloud Pub/Sub, Cloud Storage, Cloud Firestore o Altro trigger. Per ulteriori informazioni, consulta Trigger Eventarc.
- Dopo aver completato i campi obbligatori, fai clic su Salva trigger.
- Nel campo Tipo di attivatore, seleziona l'attivatore che vuoi utilizzare:
Se vuoi, espandi la sezione Runtime, build... alla fine della pagina per ulteriori opzioni di configurazione e sicurezza.
Fai clic su Avanti per andare al passaggio Codice.
Nel campo Runtime, seleziona il runtime del linguaggio utilizzato dalla funzione. Cloud Functions supporta diversi runtime. Per ulteriori informazioni, consulta Runtime.
Nel campo Punto di ingresso, inserisci 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 il nome di una funzione o un nome di classe completo esistente nel codice sorgente. Vedi Punto di ingresso della funzione per ulteriori informazioni.
Nel campo Codice sorgente, seleziona l'opzione appropriata per specificare come fornire il codice sorgente della funzione. Per maggiori dettagli, consulta le seguenti sezioni:
Fai clic su Esegui il deployment.
Al termine del deployment, le funzioni vengono visualizzate con un segno di spunta verde nella pagina Panoramica di Cloud Functions nella console Google Cloud:
Il deployment iniziale di una funzione può richiedere diversi minuti, mentre viene eseguito il provisioning dell'infrastruttura sottostante. Il deployment di una funzione esistente è più rapido e il traffico in entrata viene migrato automaticamente alla versione più recente.
Esegui il deployment dalla tua macchina locale
Questa sezione descrive come eseguire il deployment di una funzione dal codice sorgente che si trova sulla tua macchina locale.
gcloud
-
Nella console Google Cloud, attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.
Segui le istruzioni per il deployment riportate sopra utilizzando il comando
gcloud functions deploy
.Per il flag
--source
, specifica un percorso del file system locale della directory radice del codice sorgente della funzione. Vedi Struttura della directory di origine. Se questo flag viene omesso, viene usata la directory di lavoro attuale.Facoltativamente, puoi utilizzare il flag
--stage-bucket
per specificare un bucket Cloud Storage in cui caricare il codice sorgente come parte del deployment.Durante il caricamento del codice sorgente, Cloud Functions esclude i file non necessari attraverso il file
.gcloudignore
.
Console
- Segui le istruzioni per il deployment riportate sopra utilizzando la console Google Cloud fino ad arrivare al campo Codice sorgente.
- Nel campo Codice sorgente, seleziona Caricamento ZIP.
- Nel campo Bucket di destinazione, fai clic su Sfoglia per selezionare un bucket Cloud Storage in cui caricare il codice sorgente come parte del deployment.
- Nel campo File ZIP, fai clic su Sfoglia per selezionare un file ZIP da caricare dal tuo file system locale. I file di origine delle funzioni devono trovarsi nella directory principale del file ZIP. Vedi Struttura della directory di origine.
- Fai clic su Esegui il deployment.
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é Cloud Functions possa leggere da un bucket Cloud Storage, l'agente di servizio Cloud Functions
deve avere l'autorizzazione storage.objects.get
. Se il bucket di origine si trova nello stesso progetto della tua funzione, l'autorizzazione viene concessa automaticamente. Se il bucket si trova in un progetto diverso, devi concedere manualmente l'autorizzazione all'agente di servizio.
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:
gcloud
-
Nella console Google Cloud, attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.
Segui le istruzioni per il deployment riportate sopra utilizzando il comando
gcloud functions deploy
.Per il flag
--source
, specifica un percorso di Cloud Storage che inizia congs://
. L'oggetto nel percorso deve essere un file ZIP contenente il codice sorgente della funzione. I file di origine delle funzioni devono trovarsi nella directory principale del file ZIP. Vedi Struttura della directory di origine.
Console
- Segui le istruzioni per il deployment riportate sopra utilizzando la console Google Cloud fino ad arrivare al campo Codice sorgente.
- Nel campo Codice sorgente, seleziona ZIP da Cloud Storage.
- Nel campo Percorso Cloud Storage, fai clic su Sfoglia per selezionare un file ZIP da Cloud Storage. I file di origine delle funzioni devono trovarsi nella directory principale del file ZIP. Vedi Struttura della directory di origine.
- Fai clic su Esegui il deployment.
Esegui il deployment dall'editor in linea della console Google Cloud
Questa sezione descrive come scrivere ed eseguire il deployment di una funzione direttamente dalla console Google Cloud utilizzando l'editor in linea fornito.
- Segui le istruzioni per il deployment riportate sopra utilizzando la console Google Cloud fino ad arrivare al campo Codice sorgente.
- Nel campo Codice sorgente, seleziona Editor incorporato.
- Utilizza l'editor fornito per creare o modificare i file di origine in base alle esigenze. Vedi Struttura della directory di origine.
- Il riquadro a sinistra elenca i file di origine e consente di creare, rinominare ed eliminare file.
- Il riquadro a destra è un editor di testo che ti consente di modificare i contenuti dei file.
- Fai clic su Esegui il deployment.
Esempi dalla riga di comando
Questa sezione mostra i comandi di deployment per alcuni scenari di deployment di esempio.
Per maggiori dettagli sui diversi trigger supportati da Cloud Functions, consulta Trigger di Cloud Functions.
Funzione HTTP dal codice sorgente locale
Supponi di avere una funzione HTTP come segue:
- La funzione utilizza
nodejs20
. - Il codice sorgente si trova nella directory di lavoro attuale (
.
). - Il punto di accesso nel codice è denominato
myHttpFunction
.
Per eseguire il deployment della funzione con il nome my-http-function
nella regione us-central1
, usa questo comando:
gcloud functions deploy my-http-function \
--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 su eventi come segue:
- La funzione gestisce gli eventi di pubblicazione di messaggi Pub/Sub.
- La funzione utilizza
python312
. - Il codice sorgente si trova nel percorso di Cloud Storage.
gs://my-bucket/my_function_source.zip
. - Il punto di accesso nel codice è denominato
pubsub_handler
.
Per eseguire il deployment della funzione con il nome my-pubsub-function
nella regione europe-west1
e fare in modo che la funzione venga attivata dai messaggi nell'argomento Pub/Sub my-topic
, utilizza il comando seguente:
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 di avere una funzione basata su eventi come segue:
- La funzione gestisce gli eventi di eliminazione degli oggetti Cloud Storage.
- La funzione utilizza
java17
. - Il codice sorgente si trova localmente nel percorso
./functions/storage-function
. - Il punto di accesso nel codice è denominato
myproject.StorageFunction
.
Per eseguire il deployment della funzione 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 \
--gen2 \
--region=asia-northeast1 \
--runtime=java17 \
--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
- Consulta i dettagli sui trigger di Cloud Functions.
- Scopri di più sul processo di compilazione di Cloud Functions.
- Esplora le opzioni di configurazione aggiuntive di Cloud Functions.
- Scopri come proteggere Cloud Functions.
- Consulta i tutorial per esempi di casi d'uso specifici per Cloud Functions.