Azure ServiceBustigger WebJob的不同服务总线连接字符串

Azure ServiceBustigger WebJob的不同服务总线连接字符串,azure,azure-webjobs,azureservicebus,azure-webjobssdk,Azure,Azure Webjobs,Azureservicebus,Azure Webjobssdk,我有一个WebJob,它从一个事件主题中读取消息,处理它们,然后创建一个关于不同主题的消息 我可以使用服务总线触发器轻松实现这一点 public void EventSubscriptionToNotificationTopic( [ServiceBusTrigger(Subscribe.TopicName, Subscribe.SubscriptionName)] BrokeredMessage input, [ServiceBus(Publish.TopicN

我有一个WebJob,它从一个事件主题中读取消息,处理它们,然后创建一个关于不同主题的消息

我可以使用服务总线触发器轻松实现这一点

public void EventSubscriptionToNotificationTopic(
        [ServiceBusTrigger(Subscribe.TopicName, Subscribe.SubscriptionName)] BrokeredMessage input,
        [ServiceBus(Publish.TopicName)] out BrokeredMessage output)
要做到这一点,我们必须使用一个服务总线连接字符串,该字符串包含一个共享访问密钥,该密钥允许在对这两个主题(根)都有访问权限的级别上发送和侦听权限

我们希望能够使用不同的连接字符串/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>

...