我创建了一个示例客户端,该客户端侦听附加到Service-Bus主题的订阅。现在,无论何时在该主题中发布消息,客户端都会通过监听订户来捕获它。 (如下所述)
现在,我想添加一个过滤器/规则,以便仅将通过过滤器中定义的某些条件的邮件分配给订阅。
例如,下面是消息内容json,以字符串形式给出
"{"firstName": "Tony", "LastName": "Stark", "nickName": "Iron Man", "occupation":"actor"}"
如何创建仅接收"occupation": "actor"
消息的订阅规则。根据azure文档,但是我们需要SqlFilter,但到目前为止没有运气,
https://docs.microsoft.com/en-us/azure/service-bus-messaging/topic-filters
我们正在使用Terraform在天蓝色的云中创建资源。上面链接中建议的模块,但是如何定义sql_filter来考虑"occupation":"actor"
filter_type = "SqlFilter"
sql_filter = "???"
我尝试了如下操作,但是字符“:”无效
sql_filter = "'occupation':'actor'"
答案 0 :(得分:0)
您无法在消息正文中的属性上定义SQL Filter
,因为消息正文可以是任何东西。 SQL Filters
处理消息中的custom properties
。
例如,如果要在occupation
上创建过滤器,则需要将其定义为消息中的自定义属性之一,并将其值设置为actor
。然后,您的SQL Filter表达式将像:
sql_filter = "occupation = 'actor'"
您可能会发现此博客文章很有用:https://www.markheath.net/post/azure-service-bus-filtered-subscriptions。