Terraform - aws_cloud_watch_log_metric_filter



有没有人尝试在 cloudwatch 日志上设置指标过滤器?想知道我是否在Terraform中发现了错误?

所以这就是我要做的;

resource "aws_cloudwatch_log_metric_filter" "AWS_Console_Login" {
name           = "${var.aws_account_id}_Console_Login_Failure"
pattern        = "{ ($.eventName = ConsoleLogin) && ($.errorMessage = "Failed authentication") }"
log_group_name  = "${var.aws_cloudtrail_name}"  
metric_transformation {
name      = "${var.aws_account_id}_Console_Login_Failure"
namespace = "AccountMonitoring${var.aws_account_id}"
value     = "1"
}
}

当我运行 Terraform 应用程序或验证时,我收到此响应;

错误:在 157:19 解析 cloudwatch.tf 时出错:预期嵌套对象:LBRACE 得到:分配

需要明确的是,157:19 与包含 log_group_name 的代码行有关,其中 19 在 = 符号之前。

但是我认为这与我的模式有关,如果我删除日志组..并运行我得到的验证;

aws_cloudwatch_log_metric_filter。AWS_Console_Login::无效或未知的密钥:失败

我对 AWS 筛选条件模式的要求是否过高?

谢谢 斯蒂芬

尝试转义引号。这是语法上的失败。问题不在于log_group_name线。是它上面的那个。

resource "aws_cloudwatch_log_metric_filter" "AWS_Console_Login" {
name           = "${var.aws_account_id}_Console_Login_Failure"
pattern        = "{ ($.eventName = ConsoleLogin) && ($.errorMessage = "Failed authentication") }"
log_group_name  = "${var.aws_cloudtrail_name}"  
metric_transformation {
name      = "${var.aws_account_id}_Console_Login_Failure"
namespace = "AccountMonitoring${var.aws_account_id}"
value     = "1"
}
}

这似乎很好。你应该看看特夫林特。它是Visual Studio Code的Terraform插件的一部分,它帮助我追踪错误的位置。

相关内容

  • 没有找到相关文章

最新更新