[英]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.