Tempo limite da função

Se uma função for executada por muito tempo, o sistema tomará medidas para encerrar ou limitar essa função. Por padrão, esse tempo limite é de 60 segundo, mas é possível ampliar ou reduzir ao implantar a função:

  • No Cloud Functions (1a geração), a duração máxima do tempo limite é de nove minutos (540 segundos).
  • No Cloud Functions (2a geração), a duração máxima do tempo limite é de 60 minutos (3.600 segundos) para funções HTTP e 9 minutos (540 segundos) para funções orientadas a eventos.

Quando a execução da função atinge o tempo limite, a resposta do sistema depende do fato de ela ser uma função de 1ª ou 2ª geração.

  • 1ª geração: uma mensagem de resposta com um status de erro HTTP, geralmente 408, é retornada imediatamente ao autor da chamada. A execução da função é interrompida.
  • 2ª geração: uma mensagem de resposta com um status de erro HTTP 504 é imediatamente retornada ao autor da chamada. A instância de função pode ser limitada, mas continua funcionando até sair automaticamente. Todas as mensagens de resposta geradas pela função são descartadas e não são retornadas ao autor da chamada.

Esse comportamento das funções de 2ª geração pode causar efeitos colaterais inesperados. Um sintoma comum é a aparência de trabalho e registros de uma solicitação "vazando" em uma solicitação subsequente. Para impedir que isso aconteça, evite tempos limite nas suas funções com as seguintes técnicas:

  1. Defina um tempo limite maior que o tempo de execução esperado da função.
  2. Monitore o tempo restante durante a execução. Em seguida, faça a limpeza e retorne antecipadamente.

Definir a duração do tempo limite

É possível definir a duração do tempo limite de uma função na implantação usando a Google Cloud CLI ou o console do Google Cloud.

gcloud

Se a implantação usar a CLI gcloud, use a sinalização --timeout:

gcloud functions deploy YOUR_FUNCTION_NAME --timeout=TIMEOUT_DURATION ...

Para editar uma duração de tempo limite atual com a CLI do Google Cloud, reimplante a função com um novo valor de tempo limite.

Console

Para definir a duração do tempo limite durante a criação da função no console do Google Cloud:

  1. Acesse a página de visão geral do Cloud Functions no console do Google Cloud.
  2. Clique em Criar função.
  3. Preencha os campos obrigatórios da função.
  4. Expanda a seção Ambiente de execução, build... no final da página e clique na guia Ambiente de execução.
  5. No campo Tempo limite, digite um número de segundos.

    Para editar um tempo limite atual no Console do Google Cloud, na página de informações gerais das funções, clique no nome da função para acessar a página de detalhes. Na página de detalhes, clique em Editar, expanda a seção Ambiente de execução, versão... e clique na guia Ambiente de execução, em que é possível editar diretamente o valor no campo Timeout.