

# Lambda 함수에 대한 SnapStart 오류 문제 해결
<a name="snapstart-troubleshooting"></a>

이 페이지에서는 스냅샷 생성 오류, 시간 초과 오류, 내부 서비스 오류 등 Lambda SnapStart를 사용할 때 발생하는 일반적인 문제에 대해 설명합니다.

## SnapStartNotReadyException
<a name="snapstartnotreadyexception"></a>

**오류:** 간접 호출 20150331 작업을 직접적으로 간접 호출할 때 오류 발생(SnapStartNotReadyException): Lambda가 함수를 초기화하는 중입니다. 함수 상태가 ACTIVE가 되면 간접적으로 간접 호출할 준비가 된 것입니다.

### 일반적인 원인
<a name="snapstartnotreadyexception-cause"></a>

이 오류는 `Inactive` [상태](snapstart-activate.md#snapstart-function-states)인 함수 버전을 간접적으로 간접 호출하려고 할 때 발생합니다. 함수 버전이 14일 동안 간접 호출되지 않았거나 Lambda가 주기적으로 실행 환경을 재활용하는 경우 `Inactive` 상태가 됩니다.

### 해결 방법
<a name="snapstartnotreadyexception-resolution"></a>

함수 버전이 `Active` 상태에 도달할 때까지 기다린 후 다시 간접 호출하세요.

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

**문제:** SnapStart 함수 버전을 간접적으로 간접 호출하려고 하면 `SnapStartTimeoutException`이 발생합니다.

### 일반적인 원인
<a name="snapstart-invocation-failure-cause"></a>

[복원](lambda-runtime-environment.md#runtimes-lifecycle-restore) 단계에서 Lambda는 Java 런타임을 복원하고 복원 후 [런타임 후크](snapstart-runtime-hooks.md)를 실행합니다. 복원 후 런타임 후크가 10초 넘게 실행되면 `Restore` 단계의 제한 시간이 초과되고 함수를 간접 호출하려고 할 때 오류가 발생합니다. 네트워크 연결 및 자격 증명 문제로 인해 `Restore` 단계가 시간 초과될 수도 있습니다.

### 해결 방법
<a name="snapstart-invocation-failure-resolution"></a>

함수의 CloudWatch 로그에서 [복원](lambda-runtime-environment.md#runtimes-lifecycle-restore) 단계 중에 발생한 시간 초과 오류가 있는지 확인하세요. 모든 복원 후 런타임 후크가 10초 이내에 완료되어야 합니다.

**Example 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"}
```

## 500 내부 서비스 오류
<a name="snapstart-500-error"></a>

**오류:** 동시 스냅샷 생성 한도에 도달하여 Lambda에서 새 스냅샷을 생성할 수 없습니다.

### 일반적인 원인
<a name="snapstart-500-error-cause"></a>

500 오류는 함수나 코드에 문제가 있는 것이 아니라 Lambda 서비스 자체의 내부 오류입니다. 이러한 오류는 종종 간헐적으로 발생합니다.

### 해결 방법
<a name="snapstart-500-error-resolution"></a>

함수 버전을 다시 게시해 보세요.

## 401 권한이 없음
<a name="snapstart-401-unauthorized"></a>

**오류:** 잘못된 세션 토큰 또는 헤더 키

### 일반적인 원인
<a name="snapstart-401-unauthorized-cause"></a>

이 오류는 Lambda SnapStart와 함께 [AWS Systems Manager Parameter Store 및 AWS Secrets Manager 확장](with-secrets-manager.md)을 사용할 때 발생합니다.

### 해결 방법
<a name="snapstart-401-unauthorized-resolution"></a>

AWS Systems Manager Parameter Store와 AWS Secrets Manager 확장은 SnapStart와 호환되지 않습니다. 이 확장은 함수 초기화 중 AWS Secrets Manager와 통신하기 위한 자격 증명을 생성하므로 SnapStart와 함께 사용하면 만료된 자격 증명 오류가 발생합니다.

## UnknownHostException(Java)
<a name="snapstart-dns-caching"></a>

**오류:** HTTP 요청을 실행할 수 없음: `abc.us-east-1.amazonaws.com`에 대한 인증서가 주체 대체 이름 중 어느 것과도 일치하지 않습니다.

### 일반적인 원인
<a name="snapstart-dns-caching-cause"></a>

Lambda 함수는 이미 DNS 응답을 캐싱하고 있습니다. SnapStart에 다른 DNS 캐시를 사용하는 경우 스냅샷에서 함수를 재개할 때 연결 시간 초과가 발생할 수 있습니다.

### 해결 방법
<a name="snapstart-dns-caching-resolution"></a>

Java 11 런타임에서 `UnknownHostException` 오류를 방지하려면 `networkaddress.cache.negative.ttl`을 0으로 설정하는 것이 좋습니다. Java 17 이상 런타임에서는 이 단계가 필요하지 않습니다. `AWS_LAMBDA_JAVA_NETWORKADDRESS_CACHE_NEGATIVE_TTL=0` 환경 변수를 사용하여 Lambda 함수에 대해 이 속성을 설정할 수 있습니다.

## 스냅샷 생성 실패
<a name="snapstart-creation-failure"></a>

**오류:** AWS Lambda가 SnapStart 함수를 간접적으로 간접 호출할 수 없습니다. 이 오류가 지속되면 함수의 CloudWatch 로그에서 초기화 오류가 있는지 확인하세요.

### 해결 방법
<a name="snapstart-creation-failure-resolution"></a>

함수의 Amazon CloudWatch Logs에서 체크포인트 전 [런타임 후크](snapstart-runtime-hooks.md) 제한 시간 초과가 발생하는지 검토합니다. 새 함수 버전을 게시하여 문제를 해결할 수도 있습니다.

## 스냅샷 생성 지연
<a name="snapstart-creation-latency"></a>

**문제:** 새로운 함수 버전을 게시하면 해당 함수는 오랫동안 `Pending` [상태](snapstart-activate.md#snapstart-function-states)로 유지됩니다.

### 일반적인 원인
<a name="snapstart-creation-latency-cause"></a>

Lambda가 스냅샷을 생성할 때 초기화 코드를 최대 15분 동안 실행할 수 있습니다. 시간 제한은 130초 또는 [구성된 함수 제한 시간](configuration-timeout.md)(최대 900초) 중 더 높은 값입니다.

함수가 [VPC에 연결](configuration-vpc.md#configuration-vpc-attaching)된 경우 Lambda는 함수가 `Active` 상태가 되기 전에 네트워크 인터페이스를 생성해야 할 수도 있습니다. 함수가 `Pending` 상태인 동안 함수 버전을 간접적으로 간접 호출하려고 하면 409 `ResourceConflictException`이 발생할 수 있습니다. 함수가 Amazon API Gateway 엔드포인트를 사용하여 간접적으로 간접 호출되는 경우 API Gateway에서 500 오류가 발생할 수 있습니다.

### 해결 방법
<a name="snapstart-creation-latency-resolution"></a>

함수 버전이 초기화될 때까지 15분 이상 기다렸다가 간접적으로 호출하세요.