繁体   English   中英

Google Cloud:Pubsub 订阅过滤器表达式选项

[英]Google Cloud: Pubsub subscription filter expression options

我正在尝试在 GCP pubsub 订阅中添加过滤器。 我的要求是在过滤器中添加代码数量。 我为此使用 terraform。

这是我想要创建的东西:

filter = "attributes.code=(\"5426\",\"5427\",\"5428\",\"5429\",\"5430\")"

我检查了上面的内容是行不通的,但是谷歌文档引用了类似这样的语法:

filter = "attributes.code=\"5426\" OR attributes.code=\"5427\""

这个可以工作,但是如果我像这样添加所有代码,那么过滤器有一个 256 字节的限制,那么它就不会工作,因为它会抛出字符限制错误。

是否可以在过滤器中使用 RegEx?

由于代码正在生产中,因此我无法进行点击和试用,因此请咨询专家。

Pub/Sub 过滤器目前不支持正则表达式。 您可以在其公共问题跟踪器上关注这些过滤功能的更新:

与此同时,您是否有可能重组您的代码格式以利用hasPrefix() function 如果您事先知道要在同一个订阅中一起处理某些代码,则可以为它们添加公共前缀,稍后您可以使用hasPrefix()捕获这些前缀。

您也可以尝试如下。 这对我很有用。 在我的例子中,它小于 256 字节。

filter = <<EOT
attributes.code=\"5426\" OR attributes.code=\"5427\"
EOT

我像下面一样对我使用了相同的方法,并且效果很好。

filter = <<EOT
attributes.IS_LATEST = "true" AND attributes.ITEM_LIFECYCLE_PHASE != "Preliminary" AND ( attributes.OBJECT_TYPE = "Part" OR attributes.ITEM_TYPE= "Product Specification"  ) AND attributes.REVISION_RELEASE_DATE != "0"
EOT

希望能帮助到你。

谢谢

苹果系统。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM