

# Solução de problemas de erros do SnapStart para funções do Lambda
<a name="snapstart-troubleshooting"></a>

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
<a name="snapstartnotreadyexception"></a>

**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
<a name="snapstartnotreadyexception-cause"></a>

Esse erro ocorre quando você tenta invocar uma versão de função que está no [estado](snapstart-activate.md#snapstart-function-states) `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
<a name="snapstartnotreadyexception-resolution"></a>

Aguarde até que a versão de função atinja o estado `Active` e, em seguida, invoque-a novamente.

## SnapStartTimeoutException
<a name="snapstart-invocation-failure"></a>

**Problema:** você recebe um `SnapStartTimeoutException` quando tenta invocar uma versão da função do SnapStart.

### Causa comum
<a name="snapstart-invocation-failure-cause"></a>

Durante a fase [Restauração](lambda-runtime-environment.md#runtimes-lifecycle-restore), o Lambda restaura o runtime do Java e executa todos os [hooks de runtime](snapstart-runtime-hooks.md) 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
<a name="snapstart-invocation-failure-resolution"></a>

Verifique os logs do CloudWatch da função em busca de erros de tempo limite que ocorreram durante a fase de [restauração](lambda-runtime-environment.md#runtimes-lifecycle-restore). Certifique-se de que todos os hooks after-restore sejam concluídos em menos de dez segundos.

**Example 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
<a name="snapstart-500-error"></a>

**Erro:** Lambda was unable to create a new snapshot because you have reached your concurrent snapshot creation limit.

### Causa comum
<a name="snapstart-500-error-cause"></a>

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
<a name="snapstart-500-error-resolution"></a>

Tente publicar a versão da função novamente.

## 401 Não autorizado
<a name="snapstart-401-unauthorized"></a>

**Erro:** Bad session token or header key

### Causa comum
<a name="snapstart-401-unauthorized-cause"></a>

Esse erro ocorre ao usar o [AWS Systems Manager Parameter Store e a extensão do AWS Secrets Manager](with-secrets-manager.md) com o Lambda SnapStart.

### Resolução
<a name="snapstart-401-unauthorized-resolution"></a>

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)
<a name="snapstart-dns-caching"></a>

**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
<a name="snapstart-dns-caching-cause"></a>

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
<a name="snapstart-dns-caching-resolution"></a>

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
<a name="snapstart-creation-failure"></a>

**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
<a name="snapstart-creation-failure-resolution"></a>

Revise os logs do Amazon CloudWatch da função para conferir os tempos limite dos [hooks de runtime](snapstart-runtime-hooks.md) 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
<a name="snapstart-creation-latency"></a>

**Problema:** quando você publica uma nova versão da função, a função permanece no [estado](snapstart-activate.md#snapstart-function-states) `Pending` por um longo tempo.

### Causa comum
<a name="snapstart-creation-latency-cause"></a>

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](configuration-timeout.md) (máximo de 900 segundos), o que for maior.

Se a função estiver [anexada a uma VPC](configuration-vpc.md#configuration-vpc-attaching), 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
<a name="snapstart-creation-latency-resolution"></a>

Aguarde pelo menos 15 minutos para que a versão da função seja inicializada antes de invocá-la.