Usar o Cloud Functions
Objetivos
Gravar, implantar e acionar uma função do Cloud HTTP que acesse o Bigtable.
Custos
Neste tópico, usamos o Bigtable e o Cloud Functions, que são componentes faturáveis do Google Cloud.
Para informações sobre o custo do uso do Bigtable, consulte Preços do Bigtable.
Para informações sobre o custo do uso do Cloud Functions, incluindo invocações gratuitas, consulte preço do Cloud Functions.
Antes de começar
Neste tópico, presumimos que você tem uma instância do Bigtable chamada
test-instance
e uma tabela chamadatest-table
. É possível criar esses recursos seguindo as etapas em Como criar uma tabela de teste. Exclua os recursos quando terminar, para evitar cobranças desnecessárias.Ative a API Cloud Functions.
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:
Prepare 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.
Altere para o diretório que contém o código de amostra do Cloud Functions para acessar o Cloud Bigtable:
Node.js
cd nodejs-docs-samples/functions/bigtable/
Python
cd python-docs-samples/functions/bigtable/
Go
cd golang-samples/functions/bigtable/
Confira o código de amostra:
Node.js
Python
Go
A função envia uma solicitação de leitura à tabela para buscar todos os dados
stats_summary
de linhas com um prefixo de chave de linha dephone
. 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 bigtable
:
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 bigtable_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 BigtableRead \ --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.
A implantação da função pode levar até dois minutos.
Quando a implantação da função for concluída, ela retornará o valor url
. Você
usará esse valor ao acionar a função.
É possível ver as funções implantadas na página Cloud 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" -H "instance_id: test-instance" -H "table_id: test-table"
Python
curl "https://REGION-PROJECT_ID.cloudfunctions.net/bigtable_read_data" -H "instance_id: test-instance" -H "table_id: test-table"
Go
curl "https://REGION-PROJECT_ID.cloudfunctions.net/BigtableRead" -H "instance_id: test-instance" -H "table_id: test-table"
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á uma saída que mostra os resultados da solicitação de
leitura.
Também é possível visitar o URL da função no navegador para ver o resultado da solicitação de leitura.
Limpar
Para evitar cobranças adicionais na conta do Google Cloud, referentes aos recursos do Cloud Bigtable e do Cloud Functions usados neste tópico:
Exclua a instância:
gcloud bigtable instances delete test-instance
Exclua a função que você implantou:
Node.js
gcloud functions delete get
Python
gcloud functions delete bigtable_read_data
Go
gcloud functions delete BigtableRead
A seguir
- Analise outras amostras de código do Cloud Functions.
- Conheça as integrações do Cloud Functions.
- Saiba como usar o Cloud Functions com o Memcached.