ServiceBusTrigger WebJob 的不同服务总线连接字符串
Different service bus connection strings for ServiceBusTrigger WebJob
我有一个 WebJob,它从事件主题中读取消息,处理它们,然后创建关于不同主题的消息。
我可以使用服务总线触发器轻松实现这一点。
public void EventSubscriptionToNotificationTopic(
[ServiceBusTrigger(Subscribe.TopicName, Subscribe.SubscriptionName)] BrokeredMessage input,
[ServiceBus(Publish.TopicName)] out BrokeredMessage output)
为此,我们必须使用包含共享访问密钥的服务总线连接字符串,该密钥允许在可以访问两个主题(root)的级别上发送和收听权限。
我们希望能够使用不同的连接 strings/SAS 令牌锁定到我们对这些主题所需的权限(侦听事件主题订阅并发送以获取要发布到的主题)。
是否可以指定服务总线触发器或属性将使用哪个连接?
如果不是,我是否必须自己动手,也许只是使用服务总线触发器和 WebJob 连接字符串来读取消息,然后使用 TopicClient 在发布主题上创建新消息?
有一个 ServiceBusAccountAttribute
可让您指定要使用的连接字符串。您还需要指定 AccessRights
:
因此您的代码可以如下所示:
public void EventSubscriptionToNotificationTopic(
[ServiceBusTrigger(Subscribe.TopicName, Subscribe.SubscriptionName, AccessRights.Listen),
ServiceBusAccount("Topic1Listen")] BrokeredMessage input,
[ServiceBus(Publish.TopicName, AccessRights.Send),
ServiceBusAccount("Topic2Send")] out BrokeredMessage output)
{
...
}
Topic1Listen
和 Topic2Send
是 app.config 中的连接名称,但在配置文件中,您需要在连接字符串的名称前加上 AzureWebJobs
因此,在您的配置文件中,您需要两个如下所示的连接字符串:
<connectionStrings>
...
<add name="AzureWebJobsTopic1Listen" connectionString="..." />
<add name="AzureWebJobsTopic2Send" connectionString="..." />
</connectionStrings>
我有一个 WebJob,它从事件主题中读取消息,处理它们,然后创建关于不同主题的消息。
我可以使用服务总线触发器轻松实现这一点。
public void EventSubscriptionToNotificationTopic(
[ServiceBusTrigger(Subscribe.TopicName, Subscribe.SubscriptionName)] BrokeredMessage input,
[ServiceBus(Publish.TopicName)] out BrokeredMessage output)
为此,我们必须使用包含共享访问密钥的服务总线连接字符串,该密钥允许在可以访问两个主题(root)的级别上发送和收听权限。
我们希望能够使用不同的连接 strings/SAS 令牌锁定到我们对这些主题所需的权限(侦听事件主题订阅并发送以获取要发布到的主题)。
是否可以指定服务总线触发器或属性将使用哪个连接?
如果不是,我是否必须自己动手,也许只是使用服务总线触发器和 WebJob 连接字符串来读取消息,然后使用 TopicClient 在发布主题上创建新消息?
有一个 ServiceBusAccountAttribute
可让您指定要使用的连接字符串。您还需要指定 AccessRights
:
因此您的代码可以如下所示:
public void EventSubscriptionToNotificationTopic(
[ServiceBusTrigger(Subscribe.TopicName, Subscribe.SubscriptionName, AccessRights.Listen),
ServiceBusAccount("Topic1Listen")] BrokeredMessage input,
[ServiceBus(Publish.TopicName, AccessRights.Send),
ServiceBusAccount("Topic2Send")] out BrokeredMessage output)
{
...
}
Topic1Listen
和 Topic2Send
是 app.config 中的连接名称,但在配置文件中,您需要在连接字符串的名称前加上 AzureWebJobs
因此,在您的配置文件中,您需要两个如下所示的连接字符串:
<connectionStrings>
...
<add name="AzureWebJobsTopic1Listen" connectionString="..." />
<add name="AzureWebJobsTopic2Send" connectionString="..." />
</connectionStrings>