Este tutorial mostra como escrever uma função HTTP do Cloud Run que devolve resultados do Spanner.
Objetivos
Escrever, implementar e acionar uma função HTTP que aceda ao Spanner.
Custos
Este documento usa o Spanner e o Cloud Run, que são componentes faturáveis do Google Cloud.
Para obter informações sobre o custo de utilização do Spanner, consulte os preços do Spanner.
Para obter informações sobre o custo de utilização do Cloud Run, incluindo invocações gratuitas, consulte os preços do Cloud Run.
Antes de começar
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 de introdução em Node.js ou Python.Ative as APIs Cloud Run 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:
Node.js
Consulte o guia de configuração do Node.js.
Python
Consulte o guia de configuração do Python.
Prepare a aplicação
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.
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
Veja o exemplo de código:
Node.js
Python
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 run deploy nodejs-spanner-function \
--source . \
--region REGION \
--function spannerQuickstart \
--base-image RUNTIME_ID \
--log-http
Python
gcloud run deploy python-spanner-function \
--source . \
--region REGION \
--function spanner_read_data \
--base-image RUNTIME_ID \
--log-http
Substituir:
REGION com o nome da Google Cloud região onde quer implementar a sua função (por exemplo,
us-west1
).RUNTIME_ID com o ID de tempo de execução adequado (por exemplo,
nodejs22
). Consulte o artigo Tempos de execução de idiomas e imagens base suportados.
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 Cloud Run naGoogle 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:
curl URL
Substitua URL pelo valor do URL devolvido quando a implementação da função terminar.
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.
Limpar
Para evitar incorrer em custos adicionais na sua Google Cloud conta pelas funções do Spanner e do Cloud Run usadas neste documento:
Elimine a instância:
gcloud CLI instances delete test-instance
Elimine o serviço do Cloud Run que implementou neste tutorial:
Node.js
gcloud run services delete nodejs-spanner-function
Python
gcloud run services delete python-spanner-function
O que se segue?
- Saiba como escrever funções do Cloud Run.
- Saiba mais sobre a implementação de funções do Cloud Run.
- Saiba mais sobre como acionar funções do Cloud Run.