

# Lambda 関数の SnapStart エラーのトラブルシューティング
<a name="snapstart-troubleshooting"></a>

このページでは、スナップショット作成エラー、タイムアウトエラー、内部サービスエラーなど、Lambda SnapStart を使用する際に発生する一般的な問題を解決します。

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

**エラー:** An error occurred (SnapStartNotReadyException) when calling the Invoke20150331 operation: Lambda is initializing your function. It will be ready to invoke once your function state becomes 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 Internal Service Error
<a name="snapstart-500-error"></a>

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

### 一般的な原因
<a name="snapstart-500-error-cause"></a>

500 エラーは、関数やコードの問題ではなく、Lambda サービス自体の内部エラーです。多くの場合、これらのエラーは断続的です。

### 解決策
<a name="snapstart-500-error-resolution"></a>

関数バージョンを再発行してみてください。

## 401 Unauthorized
<a name="snapstart-401-unauthorized"></a>

**エラー:** Bad session token or header key

### 一般的な原因
<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>

**エラー:** Unable to execute HTTP request: Certificate for `abc.us-east-1.amazonaws.com` doesn't match any of the subject alternative names.

### 一般的な原因
<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 could not invoke your SnapStart function. If this error persists, check your function's CloudWatch logs for initialization errors.

### 解決策
<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 分待機してから呼び出します。