azure - ServiceBusTrigger WebJob 的不同服务总线连接字符串

标签 azure azure-webjobs azureservicebus azure-webjobssdk

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

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

public void EventSubscriptionToNotificationTopic(
        [ServiceBusTrigger(Subscribe.TopicName, Subscribe.SubscriptionName)] BrokeredMessage input,
        [ServiceBus(Publish.TopicName)] out BrokeredMessage output)

为此,我们必须使用一个服务总线连接字符串,其中包含一个共享访问 key ,该 key 允许在有权访问两个主题(根)的级别上授予发送和监听权限。

我们希望能够使用不同的连接字符串/SAS token 来锁定我们在这些主题上所需的权限(监听事件主题订阅并发送要发布到的主题)。

是否可以指定服务总线触发器或属性将使用哪个连接?

如果不是,我是否必须自己推出,也许只使用服务总线触发器和 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)
    {
        ...
    }

Topic1ListenTopic2Send 是 app.config 中的连接名称,但在配置文件中,您需要在连接字符串的名称前加上 AzureWebJobs

因此,在您的配置文件中,您需要两个如下所示的连接字符串:

<connectionStrings>
    ...
    <add name="AzureWebJobsTopic1Listen" connectionString="..." />
    <add name="AzureWebJobsTopic2Send" connectionString="..." />
</connectionStrings>

关于azure - ServiceBusTrigger WebJob 的不同服务总线连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39489025/

相关文章:

azure - 如果从服务总线触发逻辑应用程序,如何识别我的关联 ID 或标识符

c# - 从 Graph Api 中的特定用户获取托管设备?

javascript - 如何解析 Nodejs/javascript 中的 Azure Blob URI?

azure - 在调试对 Azure 组件具有内部依赖性的项目时,我收到与分区 id 相关的错误

azure - 为什么我们需要两个不同的 Web 作业存储帐户?

Python-Azure函数服务总线触发批处理

azure - Azure 门户和 App Insights Analytics 中显示的不同用户数据

azure-webjobs-sdk-extensions 与触发的 Webjob

Azure Webjob 与云服务中的虚拟机进行通信

flutter - 如何在 Flutter 中连接到 Azure 服务总线