【问题标题】:Regex Filter Error in google_logging_project_sink Terraform Scriptgoogle_logging_project_sink Terraform 脚本中的正则表达式过滤器错误
【发布时间】:2020-12-07 11:34:41
【问题描述】:

我正在尝试使用 Terraform 创建一个 Cloud Logging Sink,其中包含一个正则表达式作为过滤器的一部分。

textPayload=~ '^The request'

关于正则表达式的格式存在许多错误,我在文档或其他关于如何正确创建脚本的 SO 问题中看不到任何内容。接收器也不是 Terraformer 生成的脚本的有效选项,因此我无法导出通过 UI 创建的过滤器

将正则表达式作为标准字符串包含时,会引发以下错误。

Unparseable filter: regular expressions must begin and end with '"' at line 1, column 106, token ''^The',

当作为带有和不带斜杠的变量包含时,variable "search" { default = "/^The request/" } 有以下几点:

Unparseable filter: unrecognized node at token 'MEMBER'

如果我能提供任何提示或文档链接,我将不胜感激,我将能够将正则表达式作为日志过滤器的一部分。

【问题讨论】:

    标签: regex google-cloud-platform terraform google-cloud-logging


    【解决方案1】:

    问题不在于您的查询,这显然是搜索谷歌云日志的有效查询。我认为这是因为您使用另一个提供商(Terraform)来部署所有内容。这将转换您的字符串值并将它们作为 JSON 传递给 GCP。我们遇到了类似的问题,这也让我有些头疼。我们想出的是:

    "severity>=ERROR AND NOT protoPayload.@type=\"type.googleapis.com/google.cloud.audit.AuditLog\" AND NOT (resource.type=\"cloud_scheduler_job\" AND jsonPayload.status=\"UNKNOWN\")"
    

    将此逻辑应用于您的查询:

    filter = "textPayload=~\"^The request\""
    

    另一种选择是排除引号:

    filter = "textPayload=~^The request"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-19
      • 1970-01-01
      • 2013-02-22
      相关资源
      最近更新 更多