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件のコメントがあります。