Ambiente de execução do Node.js 8

O ambiente de execução do Node.js 8 para Cloud Functions baseia-se no Node.js versão 8.15.0. Para saber como preparar sua máquina local para o desenvolvimento do Node.js, consulte Como configurar um ambiente de desenvolvimento do Node.js.

Para começar a usar o Node.js no Cloud Functions, consulte o Guia de início rápido.

Como selecionar o ambiente de execução

Selecione o ambiente de execução do Node.js 8 para a função durante a implantação.

gcloud

Se estiver usando a ferramenta de linha de comando gcloud, é possível especificar o ambiente de execução usando o parâmetro --runtime. Por exemplo:

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

Para mais argumentos para especificar durante a implantação, consulte Implantar usando a ferramenta gcloud.

Console

Se estiver usando o Console do Cloud, é possível selecionar o ambiente de execução ao criar e implantar uma função.

  1. No Console do Cloud, acesse a página de visão geral do Cloud Functions.

    Acesse a página de visão geral do Cloud Functions

    Verifique se o projeto para que você ativou o Cloud Functions está selecionado.

  2. Clique em Criar função.

  3. Em Ambiente de execução, selecione Node.js 8.

Ambiente de execução

Isso inclui o ambiente de execução, o sistema operacional, os pacotes e uma biblioteca que invoca a função.

O ambiente de execução do Node.js 8 usa um ambiente baseado no Ubuntu 18.04 com o Node.js versão 8.15.0. Consulte o Ambiente de execução do Cloud para ver mais informações.

Estrutura do código-fonte

Para que o Cloud Functions encontre a definição da sua função, cada ambiente de execução tem determinados requisitos de estruturação para o código-fonte. Consulte Gravar funções HTTP para mais informações.

Como especificar dependências

É possível especificar dependências para suas funções listando-as em um arquivo package.json. Para ver mais informações, consulte Como especificar dependências no Node.js.

Async/await

O Node.js 8.x é a primeira versão LTS do Node.js compatível com as palavras-chave async e await. O exemplo a seguir mostra uma função simples que usa essas novas palavras-chave:

const fetch = require('node-fetch');

/**
 * Background Cloud Function demonstrates use of async/await.
 *
 * @param {object} data The event payload.
 */
exports.helloAsync = async data => {
  const result = await fetch('https://www.example.com');
  return result;
};

A função usa a palavra-chave await para unir uma solicitação HTTP assíncrona com uma operação síncrona.

Como usar middleware para processar solicitações HTTP

Cloud Functions HTTP para Node.js fornecem objetos request e response compatíveis com ExpressJS (em inglês) para simplificar o consumo das solicitações HTTP. O Cloud Functions lê automaticamente o corpo da solicitação. Dessa maneira, você sempre receberá o corpo de uma solicitação, independentemente do tipo de conteúdo. Isso significa que as solicitações HTTP precisam ser consideradas totalmente lidas no momento em que o código é executado. O aninhamento de apps ExpressJS precisa ser usado com a ressalva de que um middleware com corpo de solicitação não lido pode não ter o comportamento esperado.