Minha função do AWS Lambda retornou um erro de “runtime encerrado”.
Breve descrição
Erros de runtime do Lambda retornam um código de status semelhante ao seguinte:
{
"errorType": "Runtime.ExitError",
"errorMessage": "RequestId: 1234aa1b-cd50-6c78-90cd-ce1234ce9950 Error: Runtime exited with error: exit status 129"
}
Resolução
Siga estas práticas recomendadas para revisar o código da função do Lambda, identificar a causa raiz e, em seguida, solucionar o erro de tempo de execução.
- Verifique no código da função os códigos de saída que chamam explicitamente a sintaxe, como process.exit(0), exit(), quit(), os.Exit(), Environment.Exit() e assim por diante. Se o código da função contiver algum desses códigos de saída, remova-os ou substitua-os por uma instrução de retorno válida.
- Analise os Amazon CloudWatch Logs para a função do Lambda e verifique a memória das funções. O Lambda aloca a potência da CPU em proporção à quantidade de memória configurada. Talvez seja necessário aumentar a quantidade de memória. Você pode configurar a quantidade de memória alocada para uma função do Lambda entre 128 MB e 10.240 MB. Você também pode otimizar o código para reduzir a quantidade de recursos consumidos. Para mais informações, consulte Memória e poder de computação.
- Se a função estiver se conectando a bancos de dados de back-end, poderão ocorrer muitas conexões. Para evitar conexões desnecessárias, inicialize as conexões do banco de dados fora do manipulador de funções. As solicitações subsequentes de invocação da função do Lambda podem reutilizar essas conexões de banco de dados. Para obter mais informações, consulte Práticas recomendadas para trabalhar com funções do AWS Lambda.
- As tentativas de reutilizar uma conexão ociosa ao invocar uma função do Lambda resultam em um erro de conexão. Para manter uma conexão persistente, use a diretiva keep-alive associada ao seu runtime. Para mais informações, consulte Reutilizar conexões com keep-alive no Node.js.
- Verifique se a função do Lambda tem erros de “falta de memória” devido ao limite de 1.024 descritores de arquivo e threads. Ative o monitoramento aprimorado de insights do Lambda na função. Você pode pesquisar e analisar dados de log para métricas de uso de memória usando uma ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html)sintaxe de consulta[ especializada. Por exemplo, você pode monitorar a métrica fd_use. As métricas são armazenadas no nome do grupo de logs /aws/lambda-insights. Para mais informações, consulte Métricas coletadas por insights do Lambda.
Informações relacionadas
Como determino se minha função do Lambda está com tempo limite?