Azure 主题订阅筛选器/订阅规则
Azure topic subscription filter / Subscription Rule
我创建了一个示例客户端,它侦听附加到服务总线主题的订阅。现在,无论何时在该主题中发布一条消息,它都会被监听订阅者的客户端捕获。 (如下所述)
现在我想添加一个 filter/rule 以便只有通过过滤器中定义的特定条件的消息才能订阅。
例如,下面是消息内容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 在 Azure Cloud 中创建资源。上面建议的模块link,但是如何定义sql_filter要考虑"occupation":"actor"
filter_type = "SqlFilter"
sql_filter = "???"
我试过如下,但得到无效字符“:”
sql_filter = "'occupation':'actor'"
您不能在邮件正文的属性上定义 SQL Filter
,因为您的邮件正文可以是任何内容。 SQL Filters
处理 custom properties
一条消息。
例如,如果您想在 occupation
上创建过滤器,则需要在消息中定义自定义属性之一并将其值设置为 actor
。那么您的 SQL 过滤器表达式将类似于:
sql_filter = "occupation = 'actor'"
您可能会发现此博客 post 有用:https://www.markheath.net/post/azure-service-bus-filtered-subscriptions。
我创建了一个示例客户端,它侦听附加到服务总线主题的订阅。现在,无论何时在该主题中发布一条消息,它都会被监听订阅者的客户端捕获。 (如下所述)
现在我想添加一个 filter/rule 以便只有通过过滤器中定义的特定条件的消息才能订阅。
例如,下面是消息内容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 在 Azure Cloud 中创建资源。上面建议的模块link,但是如何定义sql_filter要考虑"occupation":"actor"
filter_type = "SqlFilter"
sql_filter = "???"
我试过如下,但得到无效字符“:”
sql_filter = "'occupation':'actor'"
您不能在邮件正文的属性上定义 SQL Filter
,因为您的邮件正文可以是任何内容。 SQL Filters
处理 custom properties
一条消息。
例如,如果您想在 occupation
上创建过滤器,则需要在消息中定义自定义属性之一并将其值设置为 actor
。那么您的 SQL 过滤器表达式将类似于:
sql_filter = "occupation = 'actor'"
您可能会发现此博客 post 有用:https://www.markheath.net/post/azure-service-bus-filtered-subscriptions。