Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
Como soluciono erros de tempo limite de invocação da função do Lambda?
Minha função do AWS Lambda atingiu o tempo limite de forma intermitente, embora eu não tenha implantado nenhuma alteração no código.
Resolução
As funções do Lambda podem atingir o tempo limite por vários motivos. Para solucionar problemas de tempo limite da função do Lambda, primeiro identifique o que causou o problema. Em seguida, corrija o problema com base no seu caso de uso.
Verifique se a função do Lambda atingiu o tempo limite
Para recuperar os IDs de solicitação de uma invocação expirada, pesquise no grupo de logs do Amazon CloudWatch da função a frase Tarefa expirada. Em seguida, use os IDs de solicitação das invocações expiradas associadas para recuperar os logs completos de cada tempo limite de invocação.
Para obter instruções, consulte How do I determine if my Lambda function is timing out? (Como determino se minha função do Lambda atingiu o tempo limite?)
Identifique a causa da expiração da função do Lambda
Use um ou mais dos métodos a seguir para identificar o ponto de falha que causou a expiração da sua função:
Consulte seus CloudWatch Logs para Lambda
É possível usar o Amazon CloudWatch para visualizar todos os logs gerados pelo código da sua função e identificar possíveis problemas. Para obter instruções, consulte Enviar logs de função do Lambda para o CloudWatch Logs.
Se sua função retornou um rastreamento de pilha, a mensagem de erro no rastreamento de pilha especifica o que causou o erro.
Importante: o Lambda gera três linhas de log para cada invocação automaticamente (START, END e REPORT). Essas três linhas são as únicas que aparecem nos logs do CloudWatch da sua função se uma das seguintes afirmações for verdadeira:
- Não há nenhum outro registro em log explícito configurado no código personalizado da função do Lambda.
- O limite de duração da função é atingido antes que o Lambda possa executar o código da função que gera logs.
Se não for possível identificar o que causou a expiração a partir dos logs do CloudWatch, tente uma ou mais das seguintes soluções:
- Verifique se as configurações de contagem de novas tentativas e tempo limite no AWS SDK que você usou permitem tempo suficiente para que sua função seja inicializada.
- Aumente temporariamente a configuração de tempo limite da função do Lambda para que o código da função tenha tempo suficiente para gerar dados de log.
- Aumente a memória configurada da função para ajudar a reduzir a latência da duração da invocação e aumentar a capacidade de computação.
Para adicionar mais resultados de registro em log ao código da sua função, consulte a documentação a seguir sobre a versão de runtime do Lambda que você usou:
- Registrar em log e monitorar funções do Lambda em Node.js
- Registrar em log e monitorar funções do Lambda em Python
- Registrar em log e monitorar funções do Lambda em Ruby
- Registrar em log e monitorar funções do Lambda em Java
- Registrar em log e monitorar funções do Lambda em Go
- Registrar em log e monitorar funções do Lambda em C#
- Registrar em log e monitorar funções do Lambda em PowerShell
Use o AWS X-Ray para identificar gargalos no desempenho do código
Se sua função do Lambda usa recursos, microsserviços, bancos de dados ou APIs web HTTP downstream da AWS, é possível usar o AWS X-Ray para ajudar a solucionar problemas de desempenho do código.
Para obter mais informações, consulte Visualizar as invocações da função do Lambda usando o AWS X-Ray.
Use o Lambda Insights para coletar métricas a nível de sistema para a sua função
O Lambda Insights coleta métricas a nível de sistema, que incluem métricas de tempo de CPU, memória, disco e rede. Além disso, coleta informações de diagnóstico, que incluem inicializações a frio e encerramentos de processamentos do Lambda para ajudar você a isolar problemas com suas funções do Lambda.
Observação: o uso do Lambda Insights gera cobranças em sua conta da AWS. A cobrança é feita pelo tempo de invocação consumido pela extensão do Lambda em incrementos de 1 ms.
Usar os logs de fluxo da VPC para identificar por que uma solicitação de invocação específica foi negada ou não foi roteada
Os logs de fluxo da VPC permitem que você veja todo o tráfego de rede que flui de e para uma Amazon Virtual Private Cloud (Amazon VPC).
Para obter mais informações, consulte Solucionar problemas de redes no Lambda.
Observação: as variáveis a seguir são válidas caso opte por configurar os logs de fluxo da VPC:
- As cobranças de ingestão e arquivamento de dados para logs fornecidos se aplicam quando você publica logs de fluxo no CloudWatch Logs ou no Amazon Simple Storage Service (Amazon S3).
- Quando você configura uma função do Lambda para acessar recursos em uma Amazon VPC, o Lambda atribui essa função a uma interface de rede elástica. Para identificar o tráfego de rede associado à sua função do Lambda, você deve localizar a interface de rede da função. Para obter instruções, consulte Por que não consigo desanexar ou excluir uma interface de rede elástica criada pelo Lambda?
Use rastreamentos eletrônicos de HTTP para registrar detalhadamente em log as solicitações de rede geradas pelo código da função durante uma invocação
Para obter mais informações, consulte Logging HTTP wire traces (Registrar em log rastreamentos eletrônicos de HTTP).
Práticas recomendadas para evitar a expiração da função do Lambda
Certifique-se de que a função do Lambda seja idempotente
As chamadas de API podem demorar mais do que o esperado devido a problemas transitórios de rede. Problemas de rede também podem causar novas tentativas e solicitações de API duplicadas. Para se preparar para essas ocorrências, certifique-se de que sua função do Lambda seja idempotente.
Para obter mais informações, consulte Como faço para tornar minha função do Lambda idempotente?
Inicialize a lógica estática da sua função fora do manipulador de função
Quando você inicializa uma função do Lambda, o Lambda aloca até 10 segundos para que a Fase de inicialização da invocação seja concluída. Devido a essa restrição de tempo, é uma prática recomendada realizar as seguintes ações fora do manipulador de função no código de inicialização:
- Importar bibliotecas e dependências
- Definir a configuração inicial
- Inicializar conexões com outros serviços e recursos downstream
Essa inicialização estática permite que esses recursos sejam inicializados uma vez por sandbox e depois reutilizados em todas as invocações futuras no mesmo ambiente de runtime.
Para obter mais informações, consulte Otimização da inicialização estática.
Observação: o Lambda remove conexões ociosas com recursos downstream. Para permitir que sua função mantenha uma conexão persistente, use a variável TCP keepAlive associada ao runtime do Lambda que você usa.
Verifique se as configurações de contagem de novas tentativas e tempo limite no AWS SDK que você usa garantem tempo suficiente para que sua função seja inicializada
Se você usou um AWS SDK para fazer uma chamada de API e a chamada falhar, o AWS SDK tentará realizar a chamada novamente de forma automática. O número de tentativas do AWS SDK e a duração de cada nova tentativa são determinados pelas configurações que variam entre cada AWS SDK. Sua função pode precisar de mais tempo para ser inicializada do que as configurações padrão do AWS SDK permitem.
Para obter mais informações, consulte Como soluciono problemas de repetição e tempo limite ao usar um AWS SDK para invocar uma função do Lambda?
(Opcional) Configurar a simultaneidade provisionada para sua função do Lambda
A simultaneidade provisionada inicializa um número solicitado de ambientes de runtime para que eles estejam preparados para responder imediatamente às invocações de sua função. Para configurar a simultaneidade provisionada para sua função, siga as instruções em Configurar a simultaneidade provisionada.
Observação: a configuração da simultaneidade provisionada gera cobranças em sua conta da AWS. É possível configurar a simultaneidade provisionada em uma versão de uma função ou em um alias de função do Lambda.
Verifique se sua função do Lambda tem recursos de sistema suficientes
A quantidade de largura de banda da rede e CPU alocadas a uma invocação de função do Lambda é determinada pela configuração de memória da função.
Para obter mais informações, consulte Determinar a configuração de memória apropriada para uma função do Lambda.
Certifique-se de que todos os processos em segundo plano que sua função do Lambda usa sejam concluídos antes que o manipulador da função retorne uma string
Para obter mais informações, consulte Understanding container reuse in AWS Lambda (Entendendo a reutilização de contêineres no AWS Lambda).
Verifique se sua função do Lambda está configurada para funcionar dentro das configurações de tempo limite máximo de qualquer serviço integrado da AWS
Embora o limite máximo de tempo limite de invocação de uma função do Lambda seja de 15 minutos, outros serviços da AWS podem ter limites diferentes.
Por exemplo, o Amazon API Gateway espera, no máximo, 29 segundos para que uma invocação de proxy da função do Lambda seja concluída.
Para obter mais informações, consulte Como posso resolver os erros que recebo ao integrar o API Gateway com uma função do Lambda? Além disso, consulte Invocando o Lambda com eventos de outros serviços da AWS.
Confirme se há um caminho de rede válido para o endpoint que sua função está tentando alcançar
Para consultar suas configurações de rede, siga as instruções em Como soluciono problemas de tempo limite com uma função do Lambda que está em uma Amazon VPC?
- Tópicos
- ServerlessCompute
- Tags
- AWS Lambda
- Idioma
- Português

Conteúdo relevante
- feita há 7 meses
- feita há 10 meses
AWS OFICIALAtualizada há 4 anos