Crea ed esegui il deployment di una funzione Cloud Functions HTTP con Java (1ª generazione.)
Questa guida illustra il processo di scrittura di una Cloud Function utilizzando il runtime Java. Esistono due tipi di funzioni Cloud Functions:
- Una funzione HTTP, che richiami dalle richieste HTTP standard.
- Una funzione basata su eventi, che utilizzi per gestire gli eventi dal tuo Cloud ad esempio i messaggi su un argomento Pub/Sub o le modifiche nel bucket Cloud Storage.
Il documento mostra come creare una funzione HTTP semplice e come realizzarla utilizzando Maven o Gradle.
Prima di iniziare
- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Abilita le API Cloud Functions and Cloud Build.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Abilita le API Cloud Functions and Cloud Build.
- Installa e inizializza Google Cloud SDK.
- Aggiorna e installa i componenti di
gcloud
:gcloud components update
- Prepara l'ambiente di sviluppo.
Crea una funzione
Questa sezione descrive come creare una funzione.
Maven
Crea una directory sul tuo sistema locale per il codice della funzione:
Linux o Mac OS X:
mkdir ~/helloworld cd ~/helloworld
Windows:
mkdir %HOMEPATH%\helloworld cd %HOMEPATH%\helloworld
Crea la struttura del progetto che contenga la directory e il file di origine.
mkdir -p src/main/java/functions touch src/main/java/functions/HelloWorld.java
Aggiungi i seguenti contenuti al file
HelloWorld.java
:Questa funzione di esempio restituisce il saluto "Hello World!"
Gradle
Crea una directory sul tuo sistema locale per il codice della funzione:
Linux o Mac OS X:
mkdir ~/helloworld-gradle cd ~/helloworld-gradle
Windows:
mkdir %HOMEPATH%\helloworld-gradle cd %HOMEPATH%\helloworld-gradle
Crea la struttura del progetto che contenga la directory e il file di origine.
mkdir -p src/main/java/functions touch src/main/java/functions/HelloWorld.java
Aggiungi i seguenti contenuti al file
HelloWorld.java
:Questa funzione di esempio restituisce il saluto "Hello World!"
Specifica delle dipendenze
Il passaggio successivo è impostare le dipendenze:
Maven
Passa alla directory helloworld
creata in precedenza e crea
un file pom.xml
:
cd ~/helloworld
touch pom.xml
Per gestire le dipendenze utilizzando Maven, specifica le dipendenze in
la sezione <dependencies>
all'interno del file pom.xml
del tuo progetto. Per questo esercizio, copia i seguenti contenuti
nel file pom.xml
.
Vedi helloworld per un campione completo basato su Maven.
Gradle
Passa alla directory helloworld-gradle
creata in precedenza e
crea un file build.gradle
:
cd ~/helloworld-gradle
touch build.gradle
Per gestire le dipendenze utilizzando Gradle, specifica le dipendenze in
il file build.gradle
del tuo progetto. Per questo esercizio, copia i seguenti contenuti
nel file build.gradle
. Tieni presente che questo file build.gradle
include una
per aiutarti a eseguire le funzioni localmente.
Vedi helloworld-gradle per un campione completo basato su Gradle.
Creazione e test in locale
Prima di eseguire il deployment della funzione, puoi crearla e testarla in locale:
Maven
Esegui questo comando per verificare che la funzione venga creata:
mvn compile
Un'altra opzione è utilizzare il comando mvn package
per compilare il Java
eseguire i test e pacchettizzare il codice in un file JAR all'interno
. Puoi scoprire di più sul ciclo di vita della build di Maven
qui
Per testare la funzione, esegui questo comando:
mvn function:run
Gradle
Esegui questo comando per verificare che la funzione venga creata:
gradle build
Per testare la funzione, esegui questo comando:
gradle runFunction -Prun.functionTarget=functions.HelloWorld
Se il test viene completato correttamente, viene visualizzato l'URL che puoi visitare nel tuo sito web.
browser per vedere la funzione in azione:
http://localhost:8080/
. Dovresti vedere un messaggio Hello World!
.
In alternativa, puoi inviare richieste a questa funzione utilizzando curl
da un altro
finestra del terminale:
curl localhost:8080
# Output: Hello World!
esegui il deployment della funzione
Maven
Per eseguire il deployment della funzione con un trigger HTTP, esegui questo comando
nella directory helloworld
:
gcloud functions deploy my-first-function --entry-point functions.HelloWorld --runtime java17 --trigger-http --memory 512MB --allow-unauthenticated
dove my-first-function
è il nome registrato con cui la tua funzione
verrà identificato nella console Google Cloud e --entry-point
specifica
il nome completo della classe (FQN) della funzione.
Gradle
Per eseguire il deployment della funzione con un trigger HTTP, esegui questo comando
nella directory helloworld-gradle
:
gcloud functions deploy my-first-function --entry-point functions.HelloWorld --runtime java17 --trigger-http --memory 512MB --allow-unauthenticated
dove my-first-function
è il nome registrato con cui la tua funzione
verrà identificato nella console Google Cloud e --entry-point
specifica
il nome completo della classe (FQN) della funzione.
Testa la funzione di cui è stato eseguito il deployment
Al termine del deployment della funzione, prendi nota del
httpsTrigger.url
o trovarlo con il comando seguente:gcloud functions describe my-first-function
Dovrebbe avere il seguente aspetto:
https://GCP_REGION-PROJECT_ID.cloudfunctions.net/my-first-function
Accedi all'URL dal browser. Dovresti vedere un messaggio
Hello World!
.
Visualizza i log
I log per Cloud Functions sono visualizzabili utilizzando Google Cloud CLI e UI di Cloud Logging.
Utilizzare lo strumento a riga di comando
Per visualizzare i log per la tua funzione con gcloud CLI, utilizza il metodo
Comando logs read
seguito da
il nome della funzione:
gcloud functions logs read my-first-function
L'output dovrebbe essere simile al seguente:
LEVEL NAME EXECUTION_ID TIME_UTC LOG D my-first-function k2bqgroszo4u 2020-07-24 18:18:01.791 Function execution started D my-first-function k2bqgroszo4u 2020-07-24 18:18:01.958 Function execution took 168 ms, finished with status code: 200 ...
Usa la dashboard di Logging
Puoi anche visualizzare i log per Cloud Functions dal Console Google Cloud.