8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

TerraformでCloudWatchログをLambdaに流し込む設定を行う

Posted at

CloudWarchログを加工したりするためにLambdaに接続する設定をTerraformで行ってみます。

解説

ま、大して設定するところもないのでソース見るだけでもわかると思いますが………

terraformでやろうとすると意外と面倒です。つか、わかりにくい。
それは、他のリソースと違ってLambdaの場合はLambda側でACLの設定を行うためです。

CloudWatchログ

まずは対象となるログを指定します

data "aws_cloudwatch_log_group" "log" {
  name = "hoge_fuga_log"
}

サブスクリプションフィルタ

ストリームの設定です

resource "aws_cloudwatch_log_subscription_filter" "log_filter" {
  name            = "log_filter"
  log_group_name  = "${data.aws_cloudwatch_log_group.log.name}"
  filter_pattern  = ""
  destination_arn = "対象のLambda関数のarn"
}

Lambda側でACLの設定

CloudWatchログからのアクセスを許可します

resource "aws_lambda_permission" "log_permission" {
    action        = "lambda:InvokeFunction"
    function_name = "対象のLambda関数の名前"
    principal     = "logs.ap-northeast-1.amazonaws.com"
    source_arn    = "${data.aws_cloudwatch_log_group.log.arn}"
}

蛇足

毎度思うんだが、同じLambdaを指定するにもarnだったり名前だったりと統一性のないのがAWSのお約束。
まぁ、マイクロサービスのDarkSideですなぁ。

8
2
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
8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?