Testar as funções do Cloud Run antes da implantação

Neste guia, mostramos como testar uma função do Cloud Run no console do Google Cloud antes de implantá-la. Esse recurso está disponível para as funções do Node.js e Python.

Preparar uma função para testes

Para preparar uma função para testes:

  1. Abra a página de visão geral do Functions no console do Google Cloud:

    Acesse a página de visão geral das funções do Cloud Run.

    Verifique se o projeto para que você ativou as funções do Cloud Run está selecionado.

  2. Clique em Criar função para criar uma nova função do Node.js ou Python ou selecione uma função existente do Node.js ou Python e clique em Editar para editá-la.

  3. Clique em Próxima para avançar para a página de edição de código:

    Captura de tela que mostra o painel de testes da pré-implantação da função

  4. Clique em Testar função para iniciar o processo de testes.

  5. Quando solicitado, clique em Iniciar teste para autorizar o uso do terminal do Cloud Shell.

Executar o teste

Quando você concluir as etapas anteriores, o painel do evento de acionamento será aberto à direita, confirmando que a função está pronta para ser testada. Clique em Executar teste:

Captura de tela que mostra o painel de testes da pré-implantação da função

Esta fase do processo de teste inclui os seguintes componentes:

  • Painel de eventos de gatilho. Esse painel é pré-preenchido com um payload que corresponde ao gatilho de evento especificado na página de configuração. Essa é a entrada da sua função.
  • Janela de saída do Cloud Shell. A janela de saída do Cloud Shell exibe o código de status HTTP e qualquer resposta retornada ao autor da chamada.
  • Executar teste realiza o teste.

É possível observar a saída do teste na janela do Cloud Shell:

Captura de tela que mostra a janela de saída do Cloud Shell

Terminal do Cloud Shell

É possível ver a saída da geração de registros pela sua função no terminal do Cloud Shell na parte inferior da tela. Por exemplo, você verá a saída de empacotamento do código-fonte quando abrir o painel de testes. Ao executar um teste, você verá as mudanças no código-fonte e a saída no nível da execução, incluindo console.log e erros.

Se o teste falhar, o terminal do Cloud Shell exibirá uma mensagem de erro para ajudar a identificar a causa exata, por exemplo:

[11:31:47 AM] - Provided module can't be loaded.
Is there a syntax error in your code?
Detailed stack trace: /workspace/index.js:11
    : 'World';
    ^

SyntaxError: Unexpected token ':'
    at Object.compileFunction (node:vm:360:18)
    at wrapSafe (node:internal/modules/cjs/loader:1048:15)
    at Module._compile (node:internal/modules/cjs/loader:1083:27)
    at Module._extensions..js (node:internal/modules/cjs/loader:1173:10)
    at Module.load (node:internal/modules/cjs/loader:997:32)
    at Module._load (node:internal/modules/cjs/loader:838:12)
    at Module.require (node:internal/modules/cjs/loader:1021:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at getUserFunction (/workspace/node_modules/@google-cloud/functions-framework/build/src/loader.js:98:30)
    at async main (/workspace/node_modules/@google-cloud/functions-framework/build/src/main.js:35:32)

[11:31:47 AM] - Could not load the function, shutting down.

Implantar

Depois de concluir o teste, será possível implantar a função da maneira habitual clicando em Implantar.

Limitações

Os testes de pré-implantação têm algumas limitações conhecidas.

Acesso à rede

Os testes de pré-implantação são executados no Cloud Shell, que não está conectado à VPC, mesmo que você tenha especificado um acesso VPC sem servidor nas etapas anteriores. Para testar um função do Cloud Run que depende da conectividade da VPC, você precisa implantar toda a função do Cloud Run.