CloudWatch Lambda Insights のトラブルシューティングと既知の問題
問題をトラブルシューティングする最初のステップは、Lambda Insights 拡張機能でデバッグログを有効にすることです。これを行うには、Lambda 関数に環境変数 LAMBDA_INSIGHTS_LOG_LEVEL=info
を設定します。詳細については、AWS Lambda 環境変数の使用を参照してください。
拡張機能は、関数と同じロググループ (/aws/lambda/
) にログを放出します。これらのログを確認して、エラーがセットアップの問題に関連しているかどうかを確認します。function-name
)
Lambda Insights からのメトリクスが表示されません
表示されるべき Lambda Insights メトリクスが表示されない場合は、次の可能性をチェックしてください。
メトリクスが遅れている – 関数がまだ呼び出されていない場合、またはデータがまだフラッシュされていない場合は、メトリクスは CloudWatch に表示されません。詳細については、このセクションの後半の「既知の問題」をご参照ください。
Lambda 関数が正しいアクセス許可を持っていることを確認する – CloudWatchLambdaInsightsExecutionRolePolicy IAM ポリシーが関数の実行ロールに割り当てられていることを確認します。
Lambda ランタイムの確認 – Lambda Insights は特定の Lambda ランタイムのみをサポートします。サポートされているランタイムのリストについては、「Lambda Insights」を参照してください。
例えば、Java 8 で Lambda Insights を使用するには、
java8
ランタイムではなくjava8.al2
ランタイムを使用する必要があります。ネットワークアクセスを確認する – この Lambda 関数は、インターネットにアクセスできない VPC プライベートサブネット上にあり、CloudWatch Logs のために VPC エンドポイントがに設定されていない可能性があります。この問題のデバッグに役立てるために、環境変数
LAMBDA_INSIGHTS_LOG_LEVEL=info
を設定できます。
既知の問題
最長データ遅延は 20 分です。関数ハンドラーが完了すると、Lambda はサンドボックスをフリーズし、Lambda Insights 拡張機能もフリーズします。関数の実行中は、関数 TPS に基づくアダプティブバッチ戦略を使用してデータを出力します。ただし、関数が長期間呼び出されなくなり、バッファにイベントデータが残っている場合は、Lambda がアイドル状態のサンドボックスをシャットダウンするまでこのデータを遅延させることができます。Lambda がサンドボックスをシャットダウンすると、バッファされたデータはフラッシュされます。