Esta página aborda problemas comuns que ocorrem ao usar o Lambda SnapStart, incluindo erros de criação de snapshots, erros de tempo limite e erros internos de serviço.
SnapStartNotReadyException
Erro: An error occurred (SnapStartNotReadyException) when calling the Invoke20150331 operation: Lambda is initializing your function. Ela estará pronta para ser invocada quando o estado se tornar ATIVO.
Causas comuns
Esse erro ocorre quando você tenta invocar uma versão de função que está no estado Inactive
. Sua versão da função torna-se Inactive
quando ela não é invocada há 14 dias ou quando o Lambda recicla periodicamente o ambiente de execução
Resolução
Aguarde até que a versão de função atinja o estado Active
e, em seguida, invoque-a novamente.
SnapStartTimeoutException
Problema: você recebe um SnapStartTimeoutException
quando tenta invocar uma versão da função do SnapStart.
Causa comum
Durante a fase Restauração, o Lambda restaura o runtime do Java e executa todos os hooks de runtime after-restore. Se um hook de runtime after-restore for executado por mais de dez segundos, a fase Restore
atingirá o tempo limite e você receberá um erro ao tentar invocar a função. Problemas de credenciais e de conexão de rede também podem gerar tempos limite da fase de Restore
.
Resolução
Verifique os logs do CloudWatch da função em busca de erros de tempo limite que ocorreram durante a fase de restauração. Certifique-se de que todos os hooks after-restore sejam concluídos em menos de dez segundos.
exemplo Log do CloudWatch
{ "cause": "Lambda couldn't restore the snapshot within the timeout limit. (Service: Lambda, Status Code: 408, Request ID: 11a222c3-410f-427c-ab22-931d6bcbf4f2)", "error": "Lambda.SnapStartTimeoutException"}
Erro 500 de serviço interno
Erro: Lambda was unable to create a new snapshot because you have reached your concurrent snapshot creation limit.
Causa comum
Um erro 500 é um erro interno no próprio serviço do Lambda, e não um problema com a função ou o código. Esses erros geralmente são intermitentes.
Resolução
Tente publicar a versão da função novamente.
401 Não autorizado
Erro: Bad session token or header key
Causa comum
Esse erro ocorre ao usar o AWS Systems Manager Parameter Store e a extensão do AWS Secrets Manager com o Lambda SnapStart.
Resolução
O AWS Systems Manager Parameter Store e a extensão do AWS Secrets Manager não são compatíveis com o SnapStart. A extensão gera credenciais para comunicação com o AWS Secrets Manager durante a inicialização da função, o que causa erros de credenciais expiradas quando usada com o SnapStart.
UnknownHostException (Java)
Erro: Unable to execute HTTP request: Certificate for abc.us-east-1.amazonaws.com
doesn't match any of the subject alternative names.
Causa comum
As funções do Lambda já armazenam as respostas de DNS em cache. Se você usar outro cache DNS com o SnapStart, poderá experimentar tempos limite de conexão quando a função for retomada de um snapshot.
Resolução
Para evitar falhas UnknownHostException
no runtime do Java 11, recomendamos definir networkaddress.cache.negative.ttl
como 0. Em runtimes do Java 17 e versões posteriores, essa etapa não é necessária. Você pode definir essa propriedade para uma função do Lambda com a variável de ambiente AWS_LAMBDA_JAVA_NETWORKADDRESS_CACHE_NEGATIVE_TTL=0
.
Falhas na criação do snapshots
Erro: AWS Lambda could not invoke your SnapStart function. Se esse erro persistir, verifique se há erros de inicialização nos logs do CloudWatch.
Resolução
Revise os logs do Amazon CloudWatch da função para conferir os tempos limite dos hooks de runtime before-checkpoint. Você também pode tentar publicar uma nova versão da função, o que às vezes pode resolver o problema.
Latência da criação de snapshots
Problema: quando você publica uma nova versão da função, a função permanece no estado Pending
por um longo tempo.
Causa comum
Quando o Lambda cria um snapshot, o código de inicialização pode ser executado por até 15 minutos. O limite de tempo é de 130 segundos ou o tempo limite da função configurada (máximo de 900 segundos), o que for maior.
Se a função estiver anexada a uma VPC, o Lambda também talvez precise criar interfaces de rede antes que a função fique Active
. Caso tente invocar a versão da função enquanto a função estiver Pending
, você poderá receber um erro 409 ResourceConflictException
. Se a função for invocada usando um endpoint do Amazon API Gateway, você poderá receber um erro 500 no API Gateway.
Resolução
Aguarde pelo menos 15 minutos para que a versão da função seja inicializada antes de invocá-la.