Sua primeira função: Node.js

Este guia ensina como escrever um Cloud Function usando o ambiente de execução do Node.js. Há dois tipos de Cloud Functions:

  • Uma função HTTP, que você invoca a partir de solicitações HTTP padrão.
  • Uma função de segundo plano, usada para processar eventos da infraestrutura do Cloud, como mensagens em um tópico do Cloud Pub/Sub ou alterações em um intervalo do Cloud Storage.

O exemplo mostra como criar uma função HTTP simples.

Estrutura do guia

  1. Como criar um projeto do GCP usando o SDK do Cloud
  2. Como criar uma função
  3. Como especificar dependências
  4. Como implantar a função
  5. Como testar a função

Como criar um projeto do GCP usando o SDK do Cloud

  1. Faça login na sua Conta do Google.

    Se você ainda não tiver uma, inscreva-se.

  2. No Console do GCP, na página do seletor de projetos, selecione ou crie um projeto do GCP.

    Acesse a página do seletor de projetos

  3. Verifique se o faturamento foi ativado no projeto do Google Cloud Platform. Saiba como confirmar que o faturamento está ativado para seu projeto.

  4. Ative a(s) Cloud Functions API necessária(s).

    Ativar a(s) API

  5. Instale e inicialize o SDK do Cloud.
  6. Atualize e instale os componentes gcloud:
    gcloud components update
  7. Precisa de um prompt de comando? Use o Google Cloud Shell. O Google Cloud Shell é um ambiente de linha de comando que já inclui o SDK do Google Cloud. Dessa maneira, você não precisa instalá-lo. O SDK do Google Cloud também vem pré-instalado em máquinas virtuais do Google Compute Engine.

  8. Prepare seu ambiente de desenvolvimento.

    Acessar o guia de configuração do Node.js

Como criar uma função

  1. Crie um diretório no seu sistema local para o código de função:

    Linux ou Mac OS X

    mkdir ~/gcf_hello_world
    cd ~/gcf_hello_world
    

    Windows

    mkdir %HOMEPATH%\gcf_hello_world
    cd %HOMEPATH%\gcf_hello_world
    
  2. Crie um arquivo index.js no diretório gcf_hello_world com o seguinte conteúdo:

    const escapeHtml = require('escape-html');
    
    /**
     * HTTP Cloud Function.
     *
     * @param {Object} req Cloud Function request context.
     *                     More info: https://expressjs.com/en/api.html#req
     * @param {Object} res Cloud Function response context.
     *                     More info: https://expressjs.com/en/api.html#res
     */
    exports.helloHttp = (req, res) => {
      res.send(`Hello ${escapeHtml(req.query.name || req.body.name || 'World')}!`);
    };

    Esse exemplo de função recebe um nome fornecido na solicitação HTTP e retorna uma saudação, ou "Hello World!", quando nenhum nome é fornecido.

Como especificar dependências

Dependências no Node.js são gerenciadas com npm e expressas em um arquivo de metadados chamado package.json.

  1. Crie um arquivo package.json no diretório gcf_hello_world, manualmente ou executando o comando:

    npm init
    
  2. Adicione a dependência da função, neste caso, o pacote escape-html, ao seu arquivo package.json, manualmente ou executando o comando:

    npm install escape-html
    

    Seu arquivo package.json deve conter uma seção como esta:

    {
      ...
      "dependencies": {
        "escape-html": "^1.0.3"
      }
      ...
    }
    

Como implantar a função

Para implantar a função com um acionador HTTP, execute o seguinte comando no diretório gcf_hello_world:

gcloud functions deploy helloHttp --runtime nodejs8 --trigger-http

Como implantar Cloud Functions

  1. Quando a implantação da função estiver concluída, anote a propriedade httpsTrigger.url ou encontre-a usando o seguinte comando:

    gcloud functions describe helloHttp
    

    A aparência será semelhante a esta:

    https://GCP_REGION-PROJECT_ID.cloudfunctions.net/helloHttp
  2. Visite este URL no navegador. Você verá uma mensagem "Hello World!".

    Tente passar um nome na solicitação HTTP, por exemplo, usando este URL:

    https://GCP_REGION-PROJECT_ID.cloudfunctions.net/helloHttp?name=NAME

    Você verá uma mensagem "Hello NAME!"

Como visualizar registros

Como usar a ferramenta de linha de comando

Os registros do Cloud Functions são visíveis na IU do Stackdriver Logging e por meio da ferramenta de linha de comando gcloud.

Para ver os registros da função com a ferramenta gcloud, use o comando logs read, seguido pelo nome da função:

gcloud functions logs read helloHttp

A saída será semelhante a esta:

LEVEL  NAME       EXECUTION_ID  TIME_UTC                 LOG
D      helloHttp  rvb9j0axfclb  2019-09-18 22:06:25.983  Function execution started
D      helloHttp  rvb9j0axfclb  2019-09-18 22:06:26.001  Function execution took 19 ms, finished with status code: 200

Como usar o painel do Logging

Você também pode ver os registros do Cloud Functions no Console do Cloud.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Cloud Functions