Установите имя концентратора событий из файла конфигурации вместо EventHubTrigger

У меня есть веб-задание Azure, которому необходимо читать из Azure EventHub и записывать выходные данные в другой EventHub.

Во всех примерах, которые я видел, имя концентратора событий указывается во время компиляции непосредственно в атрибуте триггера. Однако я хотел бы использовать разные имена в зависимости от значения в моем файле конфигурации (чтобы я мог по-разному назвать свой концентратор событий, например, в производстве и тестировании). Является ли это возможным?

Прямо сейчас мой код выглядит так, и, как вы можете видеть, имена «xxx» и «yyy» являются константами времени компиляции.

public void ProcessQueueMessage(
        [EventHubTrigger("xxx")]EventData[] msgs,
        [EventHub("yyy")]ICollector<EnrichedTrackingEvent> result,
        TraceWriter log)
{
    //...
}

person viblo    schedule 26.09.2017    source источник


Ответы (1)


Определите преобразователь имен и укажите его в JobHostConfiguration, как описано в этом ответе.

person Mikhail Shilkov    schedule 26.09.2017
comment
По-видимому, JobHostConfiguration по умолчанию уже настроен для выбора настроек из конфигурации, единственное изменение, которое мне потребовалось, — это использовать нотацию% configkey% (поэтому нет необходимости в моем собственном NameResolver, как в другом ответе). - person viblo; 26.09.2017
comment
@viblo, приятно знать, спасибо за обновление - person Mikhail Shilkov; 26.09.2017