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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です