LoginSignup
0
0

AWS Terraform のエラー - CloudWatch のサブスクリプションにLambda実行権限を与える

Posted at

エラー

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 でのリソースベースのポリシーの使用
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/access-control-resource-based.html

Terraform公式

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

Twitter

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0