Different connection string for output or trigger

允我心安 提交于 2019-12-02 01:45:46

问题


Here i have a webjob function using servicebus triggers and outputs. I'd like to set a different configuration for output and input.

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

I see in latest api that one can control the job host with service bus extensions.

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"),
        });

Unfortunately i see no control for the connection string for the output. I'd like a different connection string (different namespace/access rights) to be used for inputs versus outputs.

Perhaps the api can support registering named jobhostconfigurations to a jobhost, and referring to that name in the attributes for the trigger/output. Anyways if there is a way to do this let me know.


回答1:


Yes, also in the latest beta1 release you'll see that there is now a ServiceBusAccountAttribute that you can apply along with the ServiceBusTrigger/ServiceBus attributes. For example:

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

We've done the same for all the other attribute types (Queue/Blob/Table) via StorageAccountAttribute. These account attributes can be applied at the class/method/parameter level. Please give this new feature a try and let us know how it works for you. Also, see the release notes for more details.



来源:https://stackoverflow.com/questions/33109804/different-connection-string-for-output-or-trigger

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!