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 estendê-lo ou reduzi-lo ao implantar a funçã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, 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 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:
- Defina um tempo limite maior que o tempo de execução esperado da função.
- 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:
- Acesse a página de visão geral das funções do Cloud Run no console do Google Cloud.
- Clique em Criar função.
- Preencha os campos obrigatórios da função.
- Expanda a seção Ambiente de execução, build... no final da página e clique na guia Ambiente de execução.
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.