Назад | Перейти на главную страницу

Триггер Lambda cloudwatch в Terraform для Logzio

Я могу создать Журнал Cloudwatch триггер в Дизайнер раздел панели инструментов Lambda, следуя эти инструкции. Все работает как положено. Но мне очень сложно настроить их в Terraform.

Я пытаюсь подписать лямбда-функцию logzio cloudwatch shipper на группу журналов определенной функции. Однако всякий раз, когда я ссылаюсь на группу журналов функции, на которую хочу подписаться, я получаю следующую ошибку при запуске terraform apply команда: The log group provided is reserved for the function logs of the destination function..

resource "aws_cloudwatch_log_subscription_filter" "test_lambdafunction_logfilter" {
  name            = "example"
  log_group_name  = aws_cloudwatch_log_group.example.name
  filter_pattern  = ""
  destination_arn = aws_lambda_function.example.arn

  depends_on      = [aws_lambda_permission.example_cloudwatch]
}

Что я делаю не так?

data "aws_cloudwatch_log_group" "apigw_cloudwatch" {
  name = "API-Gateway-Logs"
}

resource "aws_lambda_permission" "allow_cloudwatch_for_apigw" {
  statement_id = "AllowExecutionFromCloudWatch"
  action = "lambda:InvokeFunction"
  function_name = "${aws_lambda_function.log_forwarder_lambda.arn}"
  principal   = "logs.${var.region}.amazonaws.com"
  source_arn = "${data.aws_cloudwatch_log_group.apigw_cloudwatch.arn}"
}

resource "aws_cloudwatch_log_subscription_filter" "apiqw_log_filter_cloudwatch_trigger" {
  depends_on      = ["aws_lambda_permission.allow_cloudwatch_for_apigw"]
  name            = "apiGW"
  log_group_name  = "${data.aws_cloudwatch_log_group.apigw_cloudwatch.name}"
  filter_pattern  = ""
  destination_arn = "${aws_lambda_function.log_forwarder_lambda.arn}"
  distribution    = "ByLogStream"
}