🖥
AWS Terraform のエラー - CloudWatch のサブスクリプションにLambda実行権限を与える
エラー
Error: putting CloudWatch Logs Subscription Filter (****):
InvalidParameterException: Could not execute the lambda function. Make sure you have given CloudWatch Logs permission to execute your function.
解決
aws_lambda_permissionの指定で、ソースとなるCloudWatchのログのARNは、以下のようにワイルドカード指定が必要だったみたいだ
Terraform公式より
resource "aws_lambda_permission" "logging" {
action = "lambda:InvokeFunction"
function_name = aws_lambda_function.logging.function_name
principal = "logs.<REGION>.amazonaws.com"
source_arn = "${aws_cloudwatch_log_group.default.arn}:*"
}
確認手段
AWSマネージメントコンソールで、CloudWatchのログを選んでサブスクリプション登録・Lambdaへの関連付けをおこなうと、Lambdaの画面でリソースベースの許可状態を見られる
Lambda関数 > 設定 > リソースベースのポリシーステートメント
この設定をTerraformでも踏襲した
参考
Lambda でのリソースベースのポリシーの使用
Terraform公式
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
公開日時
2023-10-03
Discussion