Objetivos
Gravar, implantar e acionar um HTTP Cloud Run function 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 para o endpoint da função.
Implantar 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 get \ --runtime nodejs22 --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 spanner_read_data \ --runtime python312 --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 HelloSpanner \ --runtime go122 --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 \ --entry-point functions.HelloSpanner \ --runtime java21 \ --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.
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:
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"
em que REGION
e PROJECT_ID
correspondem aos valores visíveis no terminal quando a implantação da função for concluída. Você verá 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 extras na sua conta do Google Cloud pelos recursos do Spanner e do Cloud Run functions usados neste documento, faça o seguinte:
Exclua a instância:
gcloud spanner instances delete test-instance
Exclua a função que você implantou:
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