Obiettivi
Scrivi, esegui il deployment e attiva una funzione cloud HTTP che accede a Spanner.
Costi
Questo argomento utilizza Spanner e Cloud Functions, che sono componenti fatturabili di Google Cloud.
Per informazioni sul costo dell'utilizzo di Spanner, consulta i prezzi di Spanner.
Per informazioni sul costo dell'utilizzo di Cloud Functions, incluse le chiamate gratuite, consulta i prezzi di Cloud Functions.
Prima di iniziare
Questo argomento presuppone che tu abbia un'istanza di Spanner denominata
test-instance
e un database chiamatoexample-db
che utilizza lo schema dell'applicazione musicale. Per istruzioni sulla creazione di un'istanza e un database con lo schema di applicazione musicale, consulta la guida rapida all'utilizzo della console o i tutorial per iniziare a utilizzare Go, Java, Node.js o Python.Abilita le API Cloud Functions e Cloud Build.
Installa e inizializza l'interfaccia a riga di comando gcloud.
Se hai già installato l'interfaccia a riga di comando gcloud, aggiornala eseguendo il comando seguente:
gcloud components update
Prepara l'ambiente di sviluppo:
Prepara l'applicazione
Clonare il repository dell'app di esempio sul computer locale:
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
In alternativa, puoi scaricare l'esempio come file ZIP ed estrarlo.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
In alternativa, puoi scaricare l'esempio come file ZIP ed estrarlo.
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
In alternativa, puoi scaricare l'esempio come file ZIP ed estrarlo.
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
In alternativa, puoi scaricare l'esempio come file ZIP ed estrarlo.
Passa alla directory che contiene il codice di esempio di Cloud Functions per accedere a Spanner:
Node.js
cd nodejs-docs-samples/functions/spanner/
Python
cd python-docs-samples/functions/spanner/
Go
cd golang-samples/functions/spanner/
Java
cd java-docs-samples/functions/spanner/
Dai un'occhiata al codice di esempio:
Node.js
Python
Go
Java
La funzione invia una query SQL per recuperare tutti i dati di
Albums
dal database. La funzione viene eseguita quando effettui una richiesta HTTP all'endpoint della funzione.
Esegui il deployment della funzione
Per eseguire il deployment della funzione con un trigger HTTP, esegui il seguente comando nella directory spanner
:
Node.js
gcloud functions deploy get \ --runtime nodejs16 --trigger-httpPuoi utilizzare i seguenti valori per il flag
--runtime
per specificare la versione Node.js preferita:
nodejs16
(consigliato)nodejs14
nodejs12
nodejs10
Python
gcloud functions deploy spanner_read_data \ --runtime python39 --trigger-httpPuoi utilizzare i seguenti valori per il flag
--runtime
per specificare la versione Python preferita:
python39
(consigliato)python38
python37
Go
gcloud functions deploy HelloSpanner \ --runtime go116 --trigger-httpPuoi utilizzare i seguenti valori per il flag
--runtime
per specificare la versione Go preferita:
go116
(consigliato)go113
go111
Java
gcloud functions deploy java-spanner-function \ --entry-point functions.HelloSpanner \ --runtime java11 \ --memory 512MB --trigger-httpPuoi utilizzare i seguenti valori per il flag
--runtime
per specificare la tua versione di Java preferita:
java17
(anteprima)java11
(consigliato)
Il deployment delle funzioni potrebbe richiedere fino a due minuti.
Tieni presente che il valore url
restituito al termine del deployment della funzione. Lo
utilizzerai quando attivi la funzione.
Puoi visualizzare le funzioni di cui è stato eseguito il deployment nella pagina Cloud Functions in Google Cloud Console. In questa pagina puoi anche creare e modificare le funzioni, nonché visualizzare dettagli e dati diagnostici delle funzioni.
Attiva la funzione
Esegui una richiesta HTTP alla funzione:
Node.js
curl "https://REGION-PROJECT_ID.cloudfunctions.net/get"
Python
curl "https://REGION-PROJECT_ID.cloudfunctions.net/spanner_read_data"
Go
curl "https://REGION-PROJECT_ID.cloudfunctions.net/HelloSpanner"
Java
curl "https://REGION-PROJECT_ID.cloudfunctions.net/java-spanner-function"
dove REGION
e PROJECT_ID
corrispondono ai valori visibili nel tuo terminale al termine del
deployment della funzione. Dovresti vedere un output che mostra i risultati della query SQL, supponendo che tu abbia elaborato un tutorial per iniziare e completato il database:
SingerId: 2, AlbumId: 2, AlbumTitle: Forever Hold Your Peace
SingerId: 1, AlbumId: 2, AlbumTitle: Go, Go, Go
SingerId: 2, AlbumId: 1, AlbumTitle: Green
SingerId: 2, AlbumId: 3, AlbumTitle: Terrified
SingerId: 1, AlbumId: 1, AlbumTitle: Total Junk
Puoi anche visitare l'URL della funzione nel browser per vedere il risultato della query SQL.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi aggiuntivi per le risorse Spanner e Cloud Functions utilizzate in questo argomento:
Elimina l'istanza:
gcloud spanner instances delete test-instance
Elimina la funzione di cui hai eseguito il deployment:
Node.js
gcloud functions delete get
Python
gcloud functions delete spanner_read_data
Go
gcloud functions delete HelloSpanner
Java
gcloud functions delete java-spanner-function