LambdaのログがCloudWatchに出力されなくなったので調べてみました。
原因は、2つ目のLambda関数を作成した際に、1つ目で作成したロールを指定した為でした。
共通で使うなら、ポリシーも確認しましょうという事ですね。
https://us-east-1.console.aws.amazon.com/iamv2/home#/roles
Lambdaのデフォルトのポリシー
IAMロール名: mediaConvertApi
※API Gateway+LambdaでDynamoDB(MediaConvertの情報)を返す で作成したもの
ポリシー名: AWSLambdaBasicExecutionRole-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
※上記、IAMロールに紐付くポリシー
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "logs:CreateLogGroup", - "Resource": "arn:aws:logs:ap-northeast-1:【アカウントID】:*" + "Resource": "arn:aws:logs:*:*:*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ - "arn:aws:logs:ap-northeast-1:【アカウントID】:log-group:/aws/lambda/mediaConvertInputFileToJobIdApi:*" + "arn:aws:logs:*:*:log-group:/aws/lambda/mediaConvert*:*" ] } ] }
出力されるロググループ(ap-northeast-1に設定したLambda)
https://ap-northeast-1.console.aws.amazon.com/cloudwatch/home?region=ap-northeast-1#logsV2:log-groups
・/aws/lambda/mediaConvertInputFileToJobIdApi ←OK
・/aws/lambda/mediaConvertJobIdToStatusApi ←NG(一致しないので出力されない)
→ /aws/lambda/mediaConvert*に変更
後は好みですが、
→ IAMはグルーバルなので、ap-northeast-1を*に変更
→ アカウントIDは環境(本番やSTG)で異なる事が多いので*に変更
CreateLogGroupは実害がないので、ゆるゆるで良さそう。
Lambda@Edgeのデフォルトのポリシー
ポリシーテンプレート: 基本的な Lambda@Edge のアクセス権限 (CloudFront トリガーの場合)
で作成した場合は、逆にゆるゆるなので、上記と同様に変更しました。
IAMロール名: mediaConvertEdgeApi
※CloudFront+Lambda@EdgeでDynamoDB(MediaConvertの情報)を返す で作成したもの
ポリシー名: AWSLambdaEdgeExecutionRole-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
※上記、IAMロールに紐付くポリシー
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", - "Action": [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:PutLogEvents" - ], - "Resource": [ - "arn:aws:logs:*:*:*" - ] + "Action": "logs:CreateLogGroup", + "Resource": "arn:aws:logs:*:*:*" + }, + { + "Effect": "Allow", + "Action": [ + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Resource": [ + "arn:aws:logs:*:*:log-group:/aws/lambda/*mediaConvert*:*" + ] } ] }
出力されるロググループ(us-east-1)
https://us-east-1.console.aws.amazon.com/cloudwatch/home?region=us-east-1#logsV2:log-groups
・/aws/lambda/mediaConvertInputFileToJobIdEdgeApi ←テストイベント実行で出力
・/aws/lambda/mediaConvertJobIdToStatusEdgeApi ←〃
出力されるロググループ(東京からAPIにアクセスした場合はap-northeast-1)
https://ap-northeast-1.console.aws.amazon.com/cloudwatch/home?region=ap-northeast-1#logsV2:log-groups
・/aws/lambda/us-east-1.mediaConvertInputFileToJobIdEdgeApi ←API実行で出力
・/aws/lambda/us-east-1.mediaConvertJobIdToStatusEdgeApi ←〃
→ /aws/lambda/*mediaConvert*に変更
“CloudWatchにログが出力されなくなったので調べてみた” に対して1件のコメントがあります。