Objetivos
Gravar, implantar e acionar um HTTP Cloud Run function que acesse o Spanner.
Custos
Este documento usa o Spanner e o Cloud 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 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 nodejs20 --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 go121 --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 java17 \ --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