Lambda で CloudWatch Logs ログを使用する
AWS Lambda は、ユーザーに代わって Lambda 関数を自動でモニタリングし、関数の障害をトラブルシューティングするのに役立ちます。関数の実行ロールに必要なアクセス許可がある限り、Lambda は関数によって処理されたすべてのリクエストのログをキャプチャし、Amazon CloudWatch Logs に送信します。
コードが正常に動作しているかどうかを検証できるように、ログ記録ステートメントをコードに挿入できます。Lambda は、CloudWatch Logs と自動的に統合し、コードのすべてのログを、Lambda 関数に関連付けられた CloudWatch ロググループに送信します。
デフォルトでは、Lambda は /aws/lambda/<function name>
という名前のロググループにログを送信します。関数から別のグループにログを送信する場合は、Lambda コンソール、AWS Command Line Interface (AWS CLI)、または Lambda API を使用してこれを設定できます。詳細については、「CloudWatch ロググループの設定」を参照してください。
Lambda 関数のログは、Lambda コンソール、CloudWatch コンソール、AWS Command Line Interface(AWS CLI)、または CloudWatch API を使って表示することができます。
注記
関数の呼び出し後にログが表示されるまで、5~10 分かかることがあります。
必要な IAM 許可
ログを CloudWatch Logs にアップロードするには、実行ロールには次のアクセス許可が必要です。
-
logs:CreateLogGroup
-
logs:CreateLogStream
-
logs:PutLogEvents
詳細については、「Amazon CloudWatch ユーザーガイド」の「Using identity-based policies (IAM policies) for CloudWatch Logs」を参照してください。
これらの CloudWatch Logs のアクセス許可は、Lambda が付与する AWSLambdaBasicExecutionRole
AWS 管理ポリシーを使って追加します。このポリシーをロールに割り当てるには、次のコマンドを実行します。
aws iam attach-role-policy --role-name your-role
--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
詳細については、「実行ロールでの AWS マネージドポリシーの使用」を参照してください。
料金
Lambda ログの使用には追加料金は発生しませんが、標準の CloudWatch Logs 料金が適用されます。詳細については、「CloudWatch 料金表