Minha função do AWS Lambda apresentou erros intermitentes e eu quero usar o Amazon CloudWatch Logs para saber se minha função atingiu o tempo limite.
Resolução
Quando a invocação de uma função do Lambda atinge o tempo limite, uma mensagem de erro Task timed out aparece nos logs do CloudWatch da invocação que falhou, não uma mensagem de Erro. Ao analisar o grupo de logs do CloudWatch da sua função do Lambda, pesquise por "Task timed out". Se você pesquisar nos logs somente mensagens de Erro, a pesquisa retornará somente erros de runtime relacionados ao código e não erros de tempo limite de invocação. Para obter mais informações, consulte Monitoring AWS Lambda errors using Amazon CloudWatch (Monitoramento dos erros do AWS Lambda usando o Amazon CloudWatch).
Use os IDs de solicitação das invocações de tempo limite associadas para recuperar os logs completos de cada tempo limite de invocação.
Antes de começar, certifique-se de que sua função do Lambda tenha as permissões necessárias do AWS Identity and Access Management (AWS IAM) para fazer upload de logs para o CloudWatch Logs.
Obtenha os IDs de solicitação para invocações expiradas
Conclua as etapas a seguir:
- Abra o console do Lambda.
- No painel de navegação, clique em Funções.
- Selecione sua função do Lambda e, em seguida, clique na guia Monitorar.
- Selecione Exibir logs do CloudWatch para abrir a página de Detalhes do grupo de logs da função no console do CloudWatch.
- Clique em Exibir no Logs Insights.
- Na caixa de texto de consulta do Logs Insights, insira a consulta a seguir e selecione Executar consulta:
fields @timestamp, @requestId, @message, @logStream| filter @message like "Task timed out"
| sort @timestamp desc
| limit 100
A resposta retorna uma lista de IDs de solicitação na saída de Tarefa expirada para as invocações que excederam o tempo limite.
Para obter mais informações, consulte Análise de dados de log com o CloudWatch Logs Insights.
Observação: para grandes grupos de log, adicione uma função datetime à consulta do Logs Insights para limitar o escopo da pesquisa. Para obter mais informações, consulte CloudWatch Sintaxe de consulta de linguagem dos Logs Insights.
Execute consultas do CloudWatch Logs Insights para os IDs de solicitação
Observação: as consultas do CloudWatch Logs Insights são cobradas com base na quantidade de dados que você consulta. Para mais informações, consulte Amazon CloudWatch pricing (Preços do Amazon CloudWatch).
Use os IDs de solicitação das invocações expiradas para recuperar os logs completos de cada tempo limite de invocação. É possível criar uma consulta para pesquisar em todos os logs os IDs de solicitação específicos. Para obter mais informações, consulte Análise de logs e registro estruturado em logs.
Para solucionar qualquer erro de tempo limite que você identificar, consulte Como soluciono erros de tempo limite de invocação da função do Lambda?