用于监听任何服务总线的 azure 函数 topic/subscription
azure function to listen to any service bus topic/subscription
使用模板创建一个 azure 函数,可以创建只监听特定一对 azure 的函数 topic/subscription:
{
"bindings": [
{
"name": "mySbMsg",
"type": "serviceBusTrigger",
"direction": "in",
"topicName": "ftopic1",
"subscriptionName": "mysub",
"connection": "collosysazfuncsb_RootManageSharedAccessKey_SERVICEBUS",
"accessRights": "Manage"
}
],
"disabled": false
}
然后在 run.csx 您刚刚收到消息
public static void Run(string message, TraceWriter log)
{
log.Info($"message: {message}");
}
有没有办法使用 azure 函数收听任何 topic/subscription,然后在 Run
方法中接收 topicName 和 subscriptionName 作为参数。
将 topic-name 作为 * 没有帮助,而且它在 Run
中不提供 topic-name。
Azure Functions 仅允许侦听单个队列或订阅。它不允许侦听多个实体(队列或订阅),因为 Azure 服务总线客户端不支持此功能。相反,它是 Azure 服务总线的 , you could leverage Auto Forwarding feature。代理会将所有消息转发到目的地 topic/queue,您将有一个队列供 Azure Functions 使用。
请务必注意,自动转发的邮件不会携带任何可以识别 queue/subscription 来源的信息。只有 dead-lettered messages.
才有可能
由于您对主题感兴趣,您可以 "workaround" 通过对您的订阅规则采取行动来解决这个问题,该规则将使用自定义 属性 标记消息。例如,有 3 个主题,每个主题都有默认订阅,默认过滤器有规则操作
set [x-source] = 'topic-N'
其中 N
是一个主题标识符,会导致所有自动转发的消息包含 x-source
自定义 属性,其值对应于它们源自的主题。
使用模板创建一个 azure 函数,可以创建只监听特定一对 azure 的函数 topic/subscription:
{
"bindings": [
{
"name": "mySbMsg",
"type": "serviceBusTrigger",
"direction": "in",
"topicName": "ftopic1",
"subscriptionName": "mysub",
"connection": "collosysazfuncsb_RootManageSharedAccessKey_SERVICEBUS",
"accessRights": "Manage"
}
],
"disabled": false
}
然后在 run.csx 您刚刚收到消息
public static void Run(string message, TraceWriter log)
{
log.Info($"message: {message}");
}
有没有办法使用 azure 函数收听任何 topic/subscription,然后在 Run
方法中接收 topicName 和 subscriptionName 作为参数。
将 topic-name 作为 * 没有帮助,而且它在 Run
中不提供 topic-name。
Azure Functions 仅允许侦听单个队列或订阅。它不允许侦听多个实体(队列或订阅),因为 Azure 服务总线客户端不支持此功能。相反,它是 Azure 服务总线的
请务必注意,自动转发的邮件不会携带任何可以识别 queue/subscription 来源的信息。只有 dead-lettered messages.
才有可能由于您对主题感兴趣,您可以 "workaround" 通过对您的订阅规则采取行动来解决这个问题,该规则将使用自定义 属性 标记消息。例如,有 3 个主题,每个主题都有默认订阅,默认过滤器有规则操作
set [x-source] = 'topic-N'
其中 N
是一个主题标识符,会导致所有自动转发的消息包含 x-source
自定义 属性,其值对应于它们源自的主题。