Neste tutorial, mostraremos como criar uma função do Cloud HTTP que envia uma consulta para o BigQuery.
Objetivos
- Escreva uma Função HTTP do Cloud que envie uma consulta para o BigQuery.
Custos
Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:
- Cloud Functions
- Cloud Build
- Artifact Registry
Veja detalhes em Preços do Cloud Functions.
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
Antes de começar
- Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Ative as APIs Cloud Functions, Cloud Build, and Artifact Registry.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Ative as APIs Cloud Functions, Cloud Build, and Artifact Registry.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Prepare seu ambiente de desenvolvimento.
Se a gcloud CLI já estiver instalada, atualize-a executando o seguinte comando:
gcloud components update
Como preparar o aplicativo
Clone o repositório do aplicativo de amostra na máquina local:
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
Outra alternativa é fazer download da amostra como um arquivo zip e extraí-la.
Altere para o diretório que contém o código de amostra do Cloud Functions:
cd nodejs-docs-samples/functions/v2/helloBigQuery
Confira o código de amostra. A amostra envia uma consulta para palavras que ocorrem pelo menos 400 vezes no conjunto de dados especificado e retorna o resultado.
Como implantar a função
Para implantar a função com um gatilho HTTP, execute o seguinte comando no diretório que contém o código de amostra:
gcloud functions deploy nodejs-bq-function \ --gen2 \ --runtime=nodejs20 \ --region=REGION \ --source=. \ --entry-point=helloBigQuery \ --trigger-http \ --allow-unauthenticated
É possível usar os seguintes valores para a sinalização
--runtime
para especificar sua versão preferida do Node.js:
nodejs18
(recomendado)nodejs16
nodejs14
nodejs12
nodejs10
A sinalização --allow-unauthenticated
permite que você atinja a função
sem autenticação.
Para exigir autenticação, omita a sinalização.
Como acionar a função
Quando a implantação da função estiver concluída, anote a propriedade
uri
ou encontre-a usando o seguinte comando:gcloud functions describe nodejs-bq-function --gen2 --region=REGION --format="value(serviceConfig.uri)"
Acesse o URI no seu navegador. Você verá uma lista das palavras que correspondem aos critérios de consulta e quantas vezes cada palavra aparece no conjunto de dados de destino.
Limpeza
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.
Excluir o projeto
O jeito mais fácil de evitar cobranças é excluindo o projeto que você criou para o tutorial.
Para excluir o projeto:
- No Console do Google Cloud, acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
- Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.
Como excluir a Função do Cloud
A exclusão de Cloud Functions não remove nenhum recurso armazenado no Cloud Storage.
Para excluir o Cloud Function criado neste tutorial, execute o seguinte comando:
gcloud functions delete nodejs-bq-function --gen2 --region REGION
Também é possível excluir o Cloud Functions do Console do Google Cloud.