Ste*_*erB 6 terraform terraform-provider-aws
有人有尝试在 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"
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行 Terraform apply 或 validate 时,我收到此响应;
错误:解析 cloudwatch.tf 时出错:157:19:预期嵌套对象:LBRACE 得到:ASSIGN
需要明确的是,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"
}
}
Run Code Online (Sandbox Code Playgroud)
这看起来没问题。你应该看看tflint。它是 Visual Studio Code 的 Terraform 插件的一部分,可以帮助我找到错误所在。
归档时间: |
|
查看次数: |
6367 次 |
最近记录: |