输出或触发器的连接字符串不同

本文关键字:字符串 连接 触发器 输出 | 更新日期: 2023-09-27 18:17:26

这里我有一个使用servicebus触发器和输出的webjob函数。我想为输出和输入设置一个不同的配置。

public static void OnPush(
    [ServiceBusTrigger("%PushProcessor.InputTopicName%", "%PushProcessor.InputTopicSubscriptionName%", AccessRights.Listen)]
    BrokeredMessage message,
    [ServiceBus("%PushProcessor.OutputTopicName%", AccessRights.Send)]
    out BrokeredMessage output
    )

我看到在最新的api中,人们可以通过服务总线扩展来控制作业主机。

JobHostConfiguration config = new JobHostConfiguration
        {
            StorageConnectionString = ConfigHelpers.GetConfigValue("AzureWebJobsStorage"),
            DashboardConnectionString = ConfigHelpers.GetConfigValue("AzureWebJobsDashboard"),
            NameResolver = new ByAppSettingsNameResolver()
        };
config.UseServiceBus(new ServiceBusConfiguration
        {
            MessageOptions = new OnMessageOptions {
                MaxConcurrentCalls = 2,
                AutoRenewTimeout = TimeSpan.FromMinutes(1),
                AutoComplete = true,
            },
            ConnectionString = ConfigHelpers.GetConfigValue("InputServiceBusConnectionString"),
        });

不幸的是,我没有看到对输出的连接字符串的控制。我想要一个不同的连接字符串(不同的名称空间/访问权限)用于输入和输出。

也许api可以支持将已命名的jobhostconfigurations注册到jobhost,并在触发器/输出的属性中引用该名称。无论如何,如果有办法做到这一点,请告诉我。

输出或触发器的连接字符串不同

是的,同样在最新的beta1版本中,你会看到现在有一个ServiceBusAccountAttribute,你可以与servicebusstrigger/ServiceBus属性一起应用。例如:

    public static void Test(
        [ServiceBusTriggerAttribute("test"),
         ServiceBusAccount("testaccount")] BrokeredMessage message)
    {
        . . .
    }

我们通过StorageAccountAttribute对所有其他属性类型(队列/Blob/表)做了相同的操作。这些帐户属性可以应用于类/方法/参数级别。请给这个新功能一个尝试,让我们知道它是如何为您工作的。此外,有关更多详细信息,请参阅发行说明。