Este documento pressupõe que tem uma instância do Spanner com o nome
test-instance
e uma base de dados com o nomeexample-db
que usa o esquema da aplicação de música. Para obter instruções sobre como criar uma instância e uma base de dados com o esquema da aplicação de música, consulte o guia de início rápido com a consola ou os tutoriais para começar a usar o Go, o Java, o Node.js ou o Python.Ative as APIs Cloud Run Functions e Cloud Build.
Instale e inicialize a CLI gcloud.
Se já tiver a CLI gcloud instalada, atualize-a executando o seguinte comando:
gcloud components update
Prepare o ambiente de programação:
Prepare a candidatura
Clone o repositório da app de exemplo para a sua máquina local:
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
Em alternativa, pode transferir o exemplo como um ficheiro ZIP e extraí-lo.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Em alternativa, pode transferir o exemplo como um ficheiro ZIP e extraí-lo.
Ir
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
Em alternativa, pode transferir o exemplo como um ficheiro ZIP e extraí-lo.
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
Em alternativa, pode transferir o exemplo como um ficheiro ZIP e extraí-lo.
Altere para o diretório que contém o código de exemplo das funções do Cloud Run para aceder ao Spanner:
Node.js
cd nodejs-docs-samples/functions/spanner/
Python
cd python-docs-samples/functions/spanner/
Ir
cd golang-samples/functions/spanner/
Java
cd java-docs-samples/functions/spanner/
Veja o exemplo de código:
Node.js
Python
Ir
Java
A função envia uma consulta SQL para obter todos os dados do
Albums
da sua base de dados. A função é executada quando faz um pedido HTTP ao ponto final da função.
Implemente a função
Para implementar a função com um acionador HTTP, execute o seguinte comando no diretório spanner
:
Node.js
gcloud functions deploy get \ --runtime nodejs22 --trigger-http
Use a flag --runtime
para especificar o ID de tempo de execução de uma
versão suportada do Node.js para executar
a sua função.
Python
gcloud functions deploy spanner_read_data \ --runtime python312 --trigger-http
Use a flag --runtime
para especificar o ID de tempo de execução de uma
versão do Python suportada para executar
a sua função.
Ir
gcloud functions deploy HelloSpanner \ --runtime go121 --trigger-http
Use a flag --runtime
para especificar o ID de tempo de execução de uma
versão do Go suportada para executar
a sua função.
Java
gcloud functions deploy java-spanner-function \ --entry-point functions.HelloSpanner \ --runtime java17 \ --memory 512MB --trigger-http
Use a flag --runtime
para especificar o ID de tempo de execução de uma
versão Java suportada para executar
a sua função.
A implementação da função pode demorar até dois minutos.
Tenha em atenção o valor url
devolvido quando a implementação da função terminar. Vai usá-lo quando acionar a função.
Pode ver as suas funções implementadas na página Funções do Cloud Run na Google Cloud consola. Também pode criar e editar funções nessa página, bem como obter detalhes e diagnósticos para as suas funções.
Acionar a função
Efetue um pedido HTTP à sua função:
Node.js
curl "https://REGION-PROJECT_ID.cloudfunctions.net/get"
Python
curl "https://REGION-PROJECT_ID.cloudfunctions.net/spanner_read_data"
Ir
curl "https://REGION-PROJECT_ID.cloudfunctions.net/HelloSpanner"
Java
curl "https://REGION-PROJECT_ID.cloudfunctions.net/java-spanner-function"
em que REGION
e PROJECT_ID
correspondem aos valores visíveis no seu terminal quando a função
termina a implementação. Deverá ver um resultado que mostra os resultados da consulta SQL, partindo do princípio de que seguiu um tutorial de introdução e preencheu a base de dados:
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
Também pode visitar o URL da função no navegador para ver o resultado da sua consulta SQL.
Limpeza
Para evitar incorrer em cobranças adicionais na sua Google Cloud conta pelos recursos das funções do Spanner e do Cloud Run usados neste documento, faça o seguinte:
Elimine a instância:
gcloud spanner instances delete test-instance
Elimine a função que implementou:
Node.js
gcloud functions delete get
Python
gcloud functions delete spanner_read_data
Ir
gcloud functions delete HelloSpanner
Java
gcloud functions delete java-spanner-function