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

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

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ですなぁ。

コメント

このブログの人気の投稿

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-04-30 23:37:32 RSSフィード2021-04-30 23:00 分まとめ(42件)

投稿時間:2023-02-05 02:09:04 RSSフィード2023-02-05 02:00 分まとめ(9件)