Я могу создать Журнал 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"
}