Deployment dal computer locale
Questa pagina mostra come eseguire il deployment di una funzione Cloud Functions dalla tua macchina locale utilizzando l'interfaccia a riga di comando di Google Cloud. Quando utilizzi lo strumento a riga di comando, Cloud Functions pacchettizza e carica automaticamente i contenuti della directory della funzione in un bucket Cloud Storage ed esclude automaticamente i file non necessari tramite il file .gcloudignore
.
In alternativa, puoi utilizzare l'interfaccia di Cloud Functions in Cloud Console per caricare un file ZIP creato da te.
Per un esempio eseguibile completo che include codice di esempio scaricabile, consulta la guida rapida dell'utilizzo dell'interfaccia a riga di comando di Google Cloud.
Esegui il deployment utilizzando l'interfaccia a riga di comando gcloud
Utilizzando l'interfaccia a riga di comando di Google Cloud, esegui il deployment della tua funzione dalla directory contenente il tuo codice funzione con il comando gcloud functions deploy
:
gcloud functions deploy NAME --entry-point ENTRY-POINT --runtime RUNTIME TRIGGER [FLAGS...]
Scopri gli argomenti in questo comando, tenendo presente la terminologia descritta in Concetti di base:
Argomento | Descrizione |
---|---|
NAME |
Il nome registrato della funzione Cloud Functions di cui esegui il deployment.
L'elemento NAME può contenere solo lettere, numeri, trattini bassi e
trattini. NAME può essere il nome di una funzione nel
codice sorgente o può essere una stringa personalizzata (ad esempio,
my-http-function ). Se utilizzi una stringa personalizzata,
devi usare anche il flag --entry-point per specificare una funzione
contenuta nel codice, per indicare al comando deploy quale
funzione eseguire.
|
--entry-point ENTRY-POINT |
Il nome di una funzione o classe nel codice sorgente. Questo flag ha due
utilizzi principali:
|
--runtime RUNTIME |
Il nome del runtime che stai utilizzando. Per un elenco completo, consulta la
documentazione di
gcloud . Tieni presente che devi includere questo flag la prima volta che esegui il deployment di una funzione, ma puoi ometterla nei deployment successivi.
|
TRIGGER |
Il tipo di attivatore per questa funzione (vedi Eventi e trigger). Le regole per specificare gli attivatori quando
esegui il deployment di una funzione sono le seguenti:
|
FLAGS... |
(Facoltativo) Altri flag che puoi specificare durante il deployment, ad esempio --stage-bucket o --source . Per un riferimento completo, consulta la documentazione di gcloud functions deploy .
|
Ogni runtime ha requisiti di strutturazione dei file specifici per consentire a Cloud Functions di trovare la definizione della tua funzione.
Esempio di funzione HTTP
Esistono tre tipi di funzioni di Cloud Functions: funzioni HTTP, funzioni in background e funzioni CloudEvent. Per un esempio che mostra come eseguire il deployment di una funzione basata su eventi, vedi Esempio di funzione basata su eventi.
Esempio Java
L'esempio seguente esegue il deployment di una funzione HTTP scritta in Java e le assegna un trigger, utilizzando il flag --trigger-http
:
gcloud functions deploy my-java-function --entry-point com.example.MyFunction --runtime java11 --trigger-http --allow-unauthenticated
Vedi gli argomenti di questo comando:
Argomento | Descrizione |
---|---|
my-java-function |
Il nome registrato della Funzione Cloud di cui esegui il deployment, in questo
caso my-java-function . Questo è un nome personalizzato da te fornito.
Può contenere solo lettere, numeri, trattini bassi e trattini.
|
--entry-point |
Il nome completo di una classe Java nel tuo codice sorgente, in
questo esempio, com.example.MyFunction .
|
--runtime java11 |
Il runtime per questa funzione, in questo caso
java11 .
|
--trigger-http |
Il tipo di attivatore per questa funzione, in questo caso una richiesta HTTP (webhook). |
--allow-unauthenticated |
Specifica che la funzione non richiede l'autenticazione da richiamare. Per impostazione predefinita, le funzioni HTTP richiedono l'autenticazione. Se non includi questo flag la prima volta che esegui il deployment di una funzione HTTP, ti viene chiesto di consentire le chiamate non autenticate. Non ti verranno richieste le chiamate successive. |
Esempio Python
La sintassi è la stessa quando utilizzi il flag --entry-point
per eseguire il deployment
di una funzione HTTP non Java. In questo esempio, il nome registrato è
my-python-function
e la funzione è helloworld
:
gcloud functions deploy my-python-function --entry-point helloworld --runtime python37 --trigger-http --allow-unauthenticated
Se esegui lo stesso comando ma senza il flag entry-point
, il campo
NAME (nome registrato) deve essere una funzione nel codice sorgente
(in questo esempio, helloworld
):
gcloud functions deploy helloworld --runtime python37 --trigger-http --allow-unauthenticated
Esempio di funzione basata su eventi
L'esempio seguente esegue il deployment di una funzione basata su eventi scritta in Node.js che verrà attivata da Cloud Storage:
gcloud functions deploy helloGCS --runtime nodejs16 --trigger-resource TRIGGER_BUCKET_NAME --trigger-event google.storage.object.finalize
Vedi gli argomenti di questo comando:
Argomento | Descrizione |
---|---|
helloGCS |
Il nome registrato della funzione Cloud Functions di cui stai eseguendo il deployment, in questo caso
helloGCS . Poiché il comando non utilizza il flag --entry-point , deve essere il nome della funzione nel codice sorgente da eseguire durante il deployment.
|
--runtime nodejs16 |
Il runtime per questa funzione, in questo caso
nodejs16 .
|
--trigger-resource |
La risorsa trigger per questa funzione. La risorsa trigger specifica la risorsa per cui viene osservato l'evento trigger. In questo caso, la risorsa è il nome (TRIGGER_BUCKET_NAME ) del bucket Cloud Storage che attiva la funzione.
|
--trigger-event |
L'evento di attivazione per questa funzione, che specifica quale azione deve attivare la funzione. In questo caso, l'evento è
google.storage.object.finalize .
|
Utilizzare i flag --trigger-resource MY_RESOURCE
e
--trigger-event MY_EVENT
è il modo più esplicito per
specificare un attivatore per una funzione basata su eventi. Tuttavia, gcloud
fornisce scorciatoie per Pub/Sub e Cloud Storage:
Quando esegui il deployment di funzioni a cui sono assegnati trigger Pub/Sub, puoi utilizzare il flag
--trigger-topic MY_TOPIC
. Questo flag è un'abbreviazione di--trigger-resource MY_TOPIC --trigger-event google.pubsub.topic.publish
.Quando esegui il deployment di funzioni a cui sono assegnati trigger di Cloud Storage, puoi utilizzare il flag
--trigger-bucket MY_STORAGE_BUCKET
per attivare l'esecuzione della funzione ogni volta che i file nel bucket specificato cambiano.
Passaggi successivi
- Chiamata di Funzioni HTTP.
- Chiamata delle funzioni di trigger di Cloud Storage.
- Chiamata delle funzioni di trigger di Cloud Pub/Sub.
- Tutorial su HTTP Cloud Functions.
- Tutorial su Cloud Functions con Cloud Storage.
- Tutorial su Cloud Functions con Cloud Pub/Sub.