Objetivos
Grave, implante e acione uma função do Cloud HTTP que acesse o Spanner.
Custos
Este documento usa o Spanner e o Cloud Run functions, que são componentes faturáveis do Google Cloud.
Para mais informações sobre o custo do uso do Spanner, consulte os preços do Spanner.
Para informações sobre o custo do uso do Cloud Run functions, incluindo invocações gratuitas, consulte Preços do Cloud Run functions.
Antes de começar
Neste tópico, pressupomos que você tem uma instância do Spanner chamada
test-instance
e um banco de dados chamadoexample-db
que usa o esquema do aplicativo de música. Para instruções sobre como criar uma instância e um banco de dados com o esquema do aplicativo de música, consulte o Guia de início rápido do uso do console ou os tutoriais de primeiros passos em Go, Java, Node.js ou Python.Ative as APIs do Cloud Run functions e do Cloud Build.
Instale e inicialize a gcloud CLI.
Se a gcloud CLI já estiver instalada, atualize-a executando o seguinte comando:
gcloud components update
Prepare seu ambiente de desenvolvimento:
Preparar o aplicativo
Clone o repositório do app de amostra na máquina local:
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
Outra alternativa é fazer o download da amostra como um arquivo ZIP e extraí-lo.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Outra alternativa é fazer o download da amostra como um arquivo ZIP e extraí-lo.
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
Outra alternativa é fazer o download da amostra como um arquivo ZIP e extraí-lo.
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
Outra alternativa é fazer o download da amostra como um arquivo ZIP e extraí-lo.
Altere para o diretório que contém o código de amostra do Cloud Run functions para acessar o 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/
Confira o código de amostra:
Node.js
Python
Go
Java
A função envia uma consulta SQL para buscar todos os dados de
Albums
do banco de dados. A função é executada quando você faz uma solicitação HTTP ao endpoint da função.
Implante a função
Para implantar a função com um gatilho HTTP, execute o seguinte comando no diretório spanner
:
Node.js
gcloud functions deploy nodejs-spanner-function \ --gen2 \ --runtime=nodejs22 \ --region=REGION
\ --source=. \ --entry-point=spannerQuickstart
--trigger-http
Use a flag --runtime
para especificar o ID do ambiente de execução de uma versão do Node.js compatível a fim de executar a função.
Python
gcloud functions deploy python-spanner-function \ --gen2 \ --runtime=python312 \ --region=REGION
\ --source=. \ --entry-point=spanner_read_data
--trigger-http
Use a flag --runtime
para especificar o ID do ambiente de execução de uma versão compatível do Python a fim de executar a função.
Go
gcloud functions deploy go-spanner-function \ --gen2 \ --runtime=go122 \ --region=REGION
\ --source=. \ --entry-point=HelloSpanner
--trigger-http
Use a flag --runtime
para especificar o ID do ambiente de execução de uma versão do Go compatível a fim de executar a função.
Java
gcloud functions deploy java-spanner-function \ --gen2 \ --runtime=java21 \ --region=REGION
\ --source=. \ --entry-point=functions.HelloSpanner \ --memory=512MB
--trigger-http
Use a flag --runtime
para especificar o ID do ambiente de execução de uma versão compatível do Java a fim de executar a função.
Substitua REGION pelo nome da região do Google Cloud em que você quer implantar a função
(por exemplo, us-west1
).
A implantação da função pode levar até dois minutos.
Observe o valor de url
retornado quando a implantação da função for concluída. Você o usará ao acionar a função.
É possível ver as funções implementadas na página do Cloud Run functions no Console do Google Cloud. Nessa página, também é possível criar e editar funções, assim como obter detalhes e diagnósticos das suas funções.
Acionar a função
Faça uma solicitação HTTP à função:
curl URL
Substitua URL pelo valor do URL retornado quando a implantação da função for concluída.
Será exibida a saída que mostra os resultados da consulta SQL, supondo que você seguiu um tutorial de primeiros passos e preencheu o banco 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
Você também pode visitar o URL da função no seu navegador para ver o resultado da sua consulta SQL.
Limpeza
Para evitar cobranças adicionais na sua conta do Google Cloud pelos recursos do Spanner e do Cloud Run functions usados neste documento:
Exclua a instância:
gcloud spanner instances delete test-instance
Exclua a função que você implantou:
Node.js
gcloud functions delete nodejs-spanner-function
Python
gcloud functions delete python-spanner-function
Go
gcloud functions delete go-spanner-function
Java
gcloud functions delete java-spanner-function