Solução de problemas e problemas conhecidos do Lambda Insights do CloudWatch
A primeira etapa para solucionar problemas é habilitar o log de depuração na extensão do Lambda Insights. Para isso, defina esta variável de ambiente em sua função Lambda: LAMBDA_INSIGHTS_LOG_LEVEL=info
. Para obter mais informações, consulte Usar variáveis de ambiente do AWS Lambda.
A extensão emite logs no mesmo grupo de logs que sua função (/aws/lambda/
). Revise esses logs para ver se o erro pode estar relacionado a um problema de instalação. function-name
)
Não visualizo nenhuma métrica do Lambda Insights
Caso você não veja as métricas do Lambda Insights que espera visualizar, verifique as possibilidades a seguir:
As métricas podem estar apenas atrasadas: se a função ainda não tiver sido invocada ou se os dados ainda não tiverem sido liberados, você não verá as métricas no CloudWatch. Para obter mais informações, consulte Probelmas conhecidos mais à frente, nesta seção.
Confirme se a função Lambda tem as permissões corretas: verifique se a política do IAM CloudWatchLambdaInsightsExecutionRolePolicy está atribuída à função de execução do IAM.
Verifique o runtime do Lambda: o Lambda Insights é compatível apenas com determinados runtimes do Lambda. Para ver uma lista dos tempos de execução compatíveis, consulte Lambda Insights.
Por exemplo, para usar o Lambda Insights em Java 8, é necessário usar o runtime
java8.al2
, e não o runtimejava8
.Verificar o acesso à rede: a função Lambda pode estar em uma sub-rede privada da VPC sem acesso à Internet e você não tem um endpoint da VPC configurado para o CloudWatch Logs. Para ajudar a depurar esse problema, você pode definir a variável de ambiente
LAMBDA_INSIGHTS_LOG_LEVEL=info
.
Problemas conhecidos
O atraso de dados pode ser de até 20 minutos. Quando um manipulador de função é concluído, o Lambda congela a sandbox, que também congela a extensão do Lambda Insights. Enquanto a função está em execução, usamos uma estratégia de lotes adaptável baseada TPS da função para dados de saída. Porém, se a função parar de ser invocada por um período prolongado e ainda houver dados de evento no buffer, esses dados poderão ser atrasados até o Lambda desligar a sandbox ociosa. Quando o Lambda desliga a sandbox, liberamos os dados armazenados em buffer.