google_logging_project_sink Terraform 脚本中的正则表达式过滤器错误

Regex Filter Error in google_logging_project_sink Terraform Script

我正在尝试使用 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'

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

问题不在于您的查询,这显然是搜索 google 云日志记录的有效查询。我认为这是因为您正在使用另一个提供商 (Terraform) 来部署所有内容。这将 t运行sform 您的字符串值并将它们作为 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"