Lambda でプロビジョニングされた同時実行の問題をトラブルシューティングする方法を教えてください。
最終更新日:2022-10-26
AWS Lambda 関数にプロビジョニングされた同時実行を設定しましたが、動作しません。この問題を修正するにはどうすればよいですか?
解決方法
Lambda 関数にプロビジョニングされた同時実行を設定した後に失敗する原因として考えられるのは、次のとおりです。
- Lambda 関数を、プロビジョニングされた同時実行が設定されたバージョンではなく、$LATEST バージョンの Lambda で呼び出している可能性があります。
- プロビジョニングされた同時実行はすべて使用中であるため、Lambda 関数は標準の同時実行で呼び出されます。これはコールドスタートの原因となります。
- アカウントがバースト制限を超えました。
プロビジョニングされた同時実行に関する問題をトラブルシューティングするには、以下の手順に従ってください。
1. プロビジョニングされた同時実行の設定に使用されている Lambda 関数が $LATEST に設定されていないことを確認します。これは、未公開バージョンの Lambda 関数は、プロビジョニングされた同時実行をサポートしていないためです。
詳細については、「Lambda 関数のバージョン」と「プロビジョニングされた同時実行の設定 」を参照してください。
2. Lambda 関数の設定で、プロビジョニングされた同時実行に [準備完了] ステータスが表示されていることを確認します。
3. Amazon CloudWatchコンソールの メトリクスページでProvisionedConcurrencySpilloverInvocations メトリクスを確認します。このメトリクスは、プロビジョニングされたすべての同時実行が使用されている場合に、Lambda 関数が標準同時実行で実行された回数を示します。
プロビジョニングされた同時実行メトリクスの詳細については、「Lambda 関数メトリクスの使用」と「呼び出しメトリクスの使用」セクションを参照してください。
4. Lambda 関数に予約済み同時実行が設定されているかどうかを確認します。予約済み同時実行は、関数のスケールアップ能力を制限します。
5. それでも問題が解決しない場合は、AWS サポートに問い合わせてください。その際、次の情報を提供してください。
- Lambda 関数の ARN。
- Lambda 関数のワークフローは、含まれるすべてのサービスで設定されています。
- 問題が断続的か継続的かに関する詳細。
- 問題が発生したときの CloudWatch ログを .txt 形式で完成させます。これらの CloudWatch ログは、タイムアウトの問題、Init Duration、許可の問題を含む Lambda 関数のエラーを特定するために使用されます。
- 問題の正確なタイムスタンプ (タイムゾーンまたはタイムスタンプ付き (UTC))。
注:セキュリティとプライバシー上の理由から、AWS サポート担当者はお客様の CloudWatch ログにアクセスできません。
トラブルシューティングの詳細については、「Lambda:プロビジョニングされた同時実行によるコールドスタート」を参照してください。
注:予約済み同時実行とは異なり、プロビジョニングされた同時実行を使用すると追加料金が発生します。プロビジョニングされた同時実行コストの詳細については、 AWS Lambda 料金表をご覧ください。プロビジョニングされた同時実行のコストを低く抑えるには、組織に合わせてプロビジョニングされた同時実行の使用をスケジュールすることを検討してください。詳細については、「AWS Lambda で、ピーク時の使用を繰り返すプロビジョニングされた同時実行をスケジュールする」を参照してください。