尝试通过 terraform 设置 cloudwatch 日志过滤器时出现 InvalidParameterException

Posted

技术标签:

【中文标题】尝试通过 terraform 设置 cloudwatch 日志过滤器时出现 InvalidParameterException【英文标题】:Getting InvalidParameterException while trying to setup cloudwatch log filter via terraform 【发布时间】:2020-12-19 10:22:40 【问题描述】:

我正在尝试使用以下资源元素使用 terrafom 设置 cloudwatch 日志过滤器(日志采用默认格式):

resource "aws_cloudwatch_log_metric_filter" "exception-filter" 
  name           = "Exception filter"
  pattern        = "Exception:"
  log_group_name = "/ecs/application/log"
  metric_transformation 
    name          = "Exceptions"
    namespace     = "app-custom"
    value         = "1"
    default_value = "0"
  

terraform apply 命令失败并显示 InvalidParameterException: Invalid metric filter pattern。

我尝试使用 \ 转义“:”,但这样做我也得到一个错误,即符号“:”不是有效的转义。

还有其他方法可以在这里指定模式吗?

【问题讨论】:

【参考方案1】:

如果模式确实包含除字母数字或下划线以外的其他字符,则 (froo docs) 必须放在双引号内 ("") 。 :

所以而不是:

  pattern        = "Exception:"

你应该有

  pattern        = "\"Exception:\""

【讨论】:

以上是关于尝试通过 terraform 设置 cloudwatch 日志过滤器时出现 InvalidParameterException的主要内容,如果未能解决你的问题,请参考以下文章

通过 Terraform 设置用于自动扩展 kubernetes 集群的启动磁盘大小

Terraform `local-exec` 设置本地别名

如何使用 terraform 在多个区域进行设置?

Terraform - 找不到匹配的 Route53Zone

如何通过 Terraform 部署 Open*** EC2 实例? [关闭]

设置Go环境以创建自定义Terraform提供程序