有没有人尝试在 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插件的一部分,它帮助我追踪错误的位置。