2015-10-13 3 views
0

Здесь у меня есть функция 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 и ссылаться на это имя в атрибутах триггера/вывода. В любом случае, если есть способ сделать это, дайте мне знать.

ответ

2

Да, также в последнем выпуске beta1 вы увидите, что есть ServiceBusAccountAttribute, который можно применять вместе с атрибутами ServiceBusTrigger/ServiceBus. Например:

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

Мы сделали то же самое для всех других типов атрибутов (Queue/Blob/таблица) с помощью StorageAccountAttribute. Эти атрибуты учетной записи могут применяться на уровне класса/метода/параметра. Пожалуйста, дайте этой новой функции попробовать и сообщите нам, как она работает для вас. Кроме того, см. release notes для более подробной информации.

+0

гм еще имея troubles.public статической силы OnPush ( [ServiceBusTrigger ("% PushProcessor.InputTopicName%", "% PushProcessor.InputTopicSubscriptionName%", AccessRights.Listen)] BrokeredMessage тзд, [ServiceBus ("% PushProcessor. OutputTopicName% ", AccessRights.Send)] [ServiceBusAccount (« PushProcessor.OutputServiceBusConnectionString »)] out Выход BrokeredMessage ) Должен ли я использовать его с помощью специального почтового сервера? У меня есть запись для строки подключения в servicebusaccount в appsettings. получение: FunctionIndexingException – TravisK

+0

Убедитесь, что строка подключения в ваших настройках имеет префикс обычного префикса AzureWebJobs. Например, если вы используете [ServiceBusAccount («SBOutput»)], имя вашей строки подключения в настройках должно быть «AzureWebJobsSBOutput». – mathewc

+0

Прохладный, что работа. Должен сказать, не совсем ясно из исключения, что я должен был сделать это. Ничто в исключении не упоминает, какую строку подключения он просматривал. Вот внутреннее исключение: В конфигурации отсутствует требуемая информация. Убедитесь, что свойство «Конечная точка» определено как часть ключа «Microsoft.ServiceBus.ConnectionString» в разделе «appSettings» или в настройках конфигурации Windows Azure. »} – TravisK

Смежные вопросы