Como determino se minha função do Lambda está ultrapassando o limite de tempo?

3 minuto de leitura
0

Minha função do AWS Lambda está enfrentando erros intermitentes e o motivo não fica claro quando analiso as respectivas métricas do Amazon CloudWatch. O aumento da taxa de erros da minha função do Lambda pode ser causado por problemas de tempo-limite? Em caso afirmativo, como determino se minha função do Lambda está atingindo o tempo-limite?

Breve descrição

Ao analisar o grupo de logs do CloudWatch da função do Lambda, procure a frase Task timed out (A tarefa atingiu o tempo-limite). Em seguida, use os IDs de solicitação das invocações associadas que atingiram o tempo-limite para recuperar os logs completos de cada tempo-limite de invocação.

Para solucionar os erros de limite de tempo que você identifica, consulte Como soluciono problemas de limite de tempo de invocação de função do Lambda?

Observação: quando uma invocação de função do Lambda atinge o tempo-limite, uma mensagem de erro Task timed out (Tempo-limite da tarefa) aparece nos logs do CloudWatch referentes à invocação com falha, não em uma mensagem de erro. Se você pesquisar somente mensagens de erro nos logs do CloudWatch referentes à sua função, a pesquisa retornará apenas erros de tempo de execução relacionados ao código, e não erros de tempo-limite de invocação. Para obter mais informações, consulte Monitoramento de erros do AWS Lambda usando o Amazon CloudWatch.

Resolução

Pré-requisitos

Se ainda não o fez, conceda permissões de registro do CloudWatch à função do Lambda. Para obter mais informações, consulte Políticas gerenciadas pela AWS para recursos do Lambda .

Recupere os IDs de solicitação de qualquer invocação que tenha ultrapassado o limite de tempo, procurando a frase “Task timed out” (Tarefa ultrapassou o limite de tempo) no grupo de logs do CloudWatch da função.

Observação: as consultas do CloudWatch Logs Insights são cobradas com base na quantidade de dados consultada. Para obter mais informações, consulte Preços do Amazon CloudWatch.

1.    Abra a página Functions (Funções) do console do Lambda.

2.    Escolha uma função.

3.    Escolha Monitor (Monitorar).

4.    Escolha View logs in CloudWatch (Visulizar logs no CloudWatch). A página Log group details (Detalhes do grupo de logs) da função é aberta no console do CloudWatch.

5.    Escolha View in Logs Insights (Visualizar logs no Insights).

6.    Na caixa de texto de consulta Logs Insights, insira a seguinte consulta e escolha Run query (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 referentes às invocações de 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 logs, considere limitar o escopo da pesquisa adicionando uma função datetime à consulta do Insights. Para obter mais informações, consulte Sintaxe de consulta do CloudWatch Logs Insights.

Use os IDs de solicitação das invocações que atingiram o tempo-limite para recuperar os logs completos de cada tempo-limite de invocação

Gere logs de saída usando a funcionalidade padrão de registro em log para a linguagem de programação que você está usando. Para obter instruções específicas de linguagem, consulte a seção Uso do AWS CLI em Acesso aos Amazon CloudWatch Logs para AWS Lambda.


AWS OFICIAL
AWS OFICIALAtualizada há 2 anos