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, 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, incluindo invocações gratuitas, consulte Preços do Cloud Run.
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 Node.js ou Python.Ative as APIs Cloud Run functions, Cloud Run e 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:
Node.js
Consulte o guia de configuração do Node.js.
Python
Consulte o guia de configuração do Python.
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
Também é possível fazer o download do exemplo como um arquivo zip e extraí-lo.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Também é possível fazer o download do exemplo 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
Confira o código de amostra:
Node.js
Python
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 beta run deploy nodejs-spanner-function \
--source . \
--region REGION \
--function spannerQuickstart \
--base-image RUNTIME_ID \
--log-http
Python
gcloud beta run deploy python-spanner-function \
--source . \
--region REGION \
--function spanner_read_data \
--base-image RUNTIME_ID \
--log-http
Substitua:
REGION com o nome da regiãoGoogle Cloud em que você quer implantar a função (por exemplo,
us-west1
).RUNTIME_ID com o ID de ambiente de execução apropriado (por exemplo,
nodejs22
). Consulte Ambientes de execução de linguagem e imagens de base compatíveis.
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 conferir as funções implementadas na página do Cloud Run 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.
Você vai ver 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.
Limpar
Para evitar cobranças extras na sua conta Google Cloud pelos recursos do Spanner e do Cloud Run functions usados neste documento:
Exclua a instância:
gcloud CLI instances delete test-instance
Exclua o serviço do Cloud Run que você implantou neste tutorial:
Node.js
gcloud run services delete nodejs-spanner-function
Python
gcloud run services delete python-spanner-function
A seguir
- Saiba mais sobre como gravar usando o Cloud Run functions
- Saiba mais sobre como implantar Cloud Run functions.
- Saiba mais sobre como acionar funções do Cloud Run.