Criar e implantar uma função do Cloud em HTTP com o Node.js
Esse documento explica o processo de criação de uma função HTTP simples do Cloud Functions. Veja a seguir um dos dois tipos de Cloud Functions:
- Uma função HTTP, que você invoca a partir de solicitações HTTP padrão.
- Uma função orientada a eventos, que é acionada por eventos em sua infraestrutura do Cloud, como mensagens em um tópico do Pub/Sub ou alterações em um bucket do Cloud Storage.
Para mais detalhes, leia Como escrever funções HTTP e Como escrever funções orientadas a eventos.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Enable the Cloud Functions, Cloud Build, Artifact Registry, Cloud Run e Cloud Logging APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Enable the Cloud Functions, Cloud Build, Artifact Registry, Cloud Run e Cloud Logging APIs.
- Instale e inicialize a CLI gcloud.
- Atualize e instale os componentes de
gcloud
.gcloud components update
-
Prepare seu ambiente de desenvolvimento.
Criar a função
Crie um diretório no seu sistema local para o código de função:
Linux ou macOS
mkdir ~/helloworld cd ~/helloworld
Windows
mkdir %HOMEPATH%\helloworld cd %HOMEPATH%\helloworld
Crie um arquivo
index.js
no diretóriohelloworld
com o seguinte conteúdo:Esta função de exemplo retorna um "Hello World!" animado a todas as solicitações.
Especificar as dependências
Dependências no Node.js são gerenciadas com npm e expressas em um arquivo de metadados chamado package.json
. É possível criar esse
arquivo manualmente ou com o comando npm
.
Para criar o arquivo
package.json
com o comandonpm
:Execute o comando
npm init
no diretório helloworld. PressioneEnter
para aceitar a resposta padrão às perguntas.npm init
Edite o arquivo
package.json
para adicionar uma dependência de framework de funções:"dependencies": { "@google-cloud/functions-framework": "^3.1.0" }
Se você preferir criar o arquivo
package.json
manualmente, copie o seguinte conteúdo para ele:
Muitas bibliotecas de cliente do Node.js estão disponíveis para uso com produtos do Google Cloud e podem ser instaladas como dependências.
Criar e testar a função localmente
Para testar a função localmente antes de implantá-la, instale o Functions Framework localmente e execute a função.
Execute o seguinte comando no diretório
helloworld
para instalar o Functions Framework na máquina local:npm install @google-cloud/functions-framework
Execute este comando no diretório
helloworld
para executar a função localmente:npx @google-cloud/functions-framework --target=helloGET
Acesse
http://localhost:8080
em um navegador ou executecurl localhost:8080
em outra janela para testar sua função.Saiba mais em Como enviar solicitações para funções locais.
A função retorna a mensagem "Hello World!".
implante a função
Para implantar a função, execute o
comando gcloud functions deploy
no diretório helloworld
:
gcloud functions deploy hello-node-function \
--gen2 \
--runtime=nodejs20 \
--region=REGION \
--source=. \
--entry-point=helloGET \
--trigger-http \
--allow-unauthenticated
Substitua REGION pelo nome da região do Google Cloud em que você quer implantar a função
(por exemplo, us-west1
).
Isso implanta a função de amostra com o ambiente de execução nodejs20 na região escolhida.
A flag --allow-unauthenticated
opcional permite que você acesse a função
sem autenticação.
Testar a função implantada
Depois que a função for implantada, observe a propriedade
uri
na saída do comandogcloud functions deploy
ou recupere-a com o seguinte comando:gcloud functions describe hello-node-function \ --region=REGION
Substitua REGION pelo nome da região do Google Cloud em que você implantou a função (por exemplo,
us-west1
).Acesse este URL no navegador ou com o seguinte comando
curl
:curl FUNCTION_URL
Substitua FUNCTION_URL pela propriedade
uri
que você acabou de recuperar.A função retorna uma mensagem "Hello World!".
Ver os registros da função
Conferir os registros com a ferramenta de linha de comando
É possível analisar os registros da função com a IU do Cloud Logging ou usando a Google Cloud CLI.
Para ver os registros da função com a CLI gcloud, use o
comando
gcloud functions logs read
:
gcloud functions logs read \
--gen2 \
--region=REGION \
--limit=10 \
hello-node-function
Substitua REGION pelo nome da região do Google Cloud em que você implantou a função
(por exemplo, us-west1
).
A saída será assim:
LEVEL: I
NAME: hello-node-function
TIME_UTC: 2023-06-16 18:42:24.956
LOG:
LEVEL: I
NAME: hello-node-function
TIME_UTC: 2023-06-16 18:42:01.692
LOG:
LEVEL: I
NAME: hello-node-function
TIME_UTC: 2023-06-16 18:31:47.711
LOG: Default STARTUP TCP probe succeeded after 1 attempt for container "hello--node--function-1" on port 8080.
LEVEL: I
NAME: hello-node-function
TIME_UTC: 2023-06-16 18:31:46.542
LOG:
LEVEL: I
NAME: hello-node-function
TIME_UTC: 2023-06-16 18:31:27.390
LOG: Default STARTUP TCP probe succeeded after 1 attempt for container "hello--node--function-1" on port 8080.
Ver os registros com o painel do Logging
Para ver os registros da função com o painel do Logging, abra a página de visão geral do Cloud Functions e clique no nome da função na lista. Em seguida, clique na guia Registros.