Crea e sottoponi a deployment una funzione Cloud Functions HTTP con Java
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 puoi richiamare dalle richieste HTTP standard.
- Una funzione basata su eventi, che utilizzi per gestire gli eventi dall'infrastruttura Cloud, come i messaggi su un argomento Cloud Pub/Sub, o le modifiche in un bucket Cloud Storage.
Il documento mostra come creare una semplice funzione HTTP e crearla utilizzando Maven o Gradle.
Struttura della guida
- Creazione di un progetto Google Cloud utilizzando Google Cloud SDK
- Creazione di una funzione
- Specificare le dipendenze
- Creazione e test in locale
- Deployment della funzione
- Test della funzione di cui è stato eseguito il deployment
- Visualizzazione dei log
Creazione di un progetto Google Cloud con Google Cloud SDK
- 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.
-
Nella console di Google Cloud Console, nella pagina del selettore dei progetti, seleziona o crea un progetto Google Cloud.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Abilita le API Cloud Functions and Cloud Build.
-
Nella console di Google Cloud Console, nella pagina del selettore dei progetti, seleziona o crea un progetto Google Cloud.
-
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
gcloud
:gcloud components update
- Prepara l'ambiente di sviluppo.
Creazione di una funzione
Questa sezione descrive come creare una funzione.
Maven
Crea una directory sul sistema locale per il codice funzione:
Linux o Mac OS X:
mkdir ~/helloworld cd ~/helloworld
Windows:
mkdir %HOMEPATH%\helloworld cd %HOMEPATH%\helloworld
Crea la struttura del progetto in modo che contenga la directory di origine 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 sistema locale per il codice 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 in modo che contenga la directory di origine 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 consiste nel configurare 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 nella sezione <dependencies>
all'interno del file pom.xml del progetto. Per questo esercizio, copia i seguenti contenuti nel file pom.xml
.
Per un esempio completo basato su Maven, consulta helloworld.
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 nel file build.gradle del progetto. Per questo esercizio, copia i seguenti contenuti nel file build.gradle
. Tieni presente che questo file build.gradle
include un'attività personalizzata per aiutarti a eseguire le funzioni localmente.
Vedi helloworld-gradle per un esempio completo basato su Gradle.
Costruzione e test in locale
Prima di eseguire il deployment della funzione, puoi crearla e testarla localmente:
Maven
Esegui questo comando per verificare che la funzione funzioni:
mvn compile
Un'altra opzione consiste nell'utilizzare il comando mvn package
per compilare il codice Java, eseguire eventuali test e pacchettizzare il codice in un file JAR all'interno della directory di destinazione. Puoi scoprire di più sul ciclo di vita della build Maven qui.
Per testare la funzione, esegui il comando seguente:
mvn function:run
Gradle
Esegui questo comando per verificare che la funzione funzioni:
gradle build
Per testare la funzione, esegui il comando seguente:
gradle runFunction -Prun.functionTarget=functions.HelloWorld
Se il test ha esito positivo, viene visualizzato l'URL che puoi visitare nel browser web per vedere la funzione in azione:
http://localhost:8080/
. Dovresti vedere un messaggio di Hello World!
.
In alternativa, puoi inviare richieste a questa funzione utilizzando curl
da un'altra finestra del terminale:
curl localhost:8080
# Output: Hello World!
Deployment della funzione
Maven
Per 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 funzione
viene identificata nella console Google Cloud e --entry-point
specifica
il nome completo della classe (FQN) della funzione.
Gradle
Per 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 funzione
viene identificata nella console Google Cloud e --entry-point
specifica
il nome completo della classe (FQN) della funzione.
Test della funzione di cui è stato eseguito il deployment
Al termine del deployment della funzione, annota la proprietà
httpsTrigger.url
o cercala utilizzando il seguente comando: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 di
Hello World!
.
Visualizzazione dei log
Utilizzo dello strumento a riga di comando
I log per Cloud Functions sono visualizzabili nell'interfaccia utente di Cloud Logging e tramite Google Cloud CLI.
Per visualizzare i log per la tua funzione con gcloud CLI, utilizza il comando logs read
, seguito dal 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 ...
Utilizzo della dashboard di Logging
Puoi visualizzare i log per Cloud Functions anche dalla console Google Cloud.