Minha função do AWS Lambda apresentou erros intermitentes e eu quero usar o Amazon CloudWatch Logs para determinar 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 de tempo limite de tarefa 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 “Tempo limite da tarefa”. Se você pesquisar nos logs somente mensagens de Erro, a pesquisa retornará somente erros runtime relacionados ao código e não erros de tempo limite de invocação. Para obter mais informações, consulte Monitoramento do AWS Lambda usando métricas do 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, escolha Funções.
- Selecione sua função do Lambda e, em seguida, escolha a guia Monitorar.
- Escolha Exibir logs do CloudWatch para abrir a página de Detalhes do grupo de logs da função no console do CloudWatch.
- Escolha Exibir no Logs Insights.
- Na caixa de texto de consulta do Logs Insights, insira a consulta a seguir e escolha 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 A tarefa expirou 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 de data e hora à consulta do Logs Insights para limitar o escopo da pesquisa. Para mais informações, consulte a sintaxe de consulta da linguagem do CloudWatch 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 os 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 registros estruturados.
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?