См. Раздел и имя подписки в разделе «Конфигурация» в функции Azure с триггером служебной шины. - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть триггер темы служебной шины Azure с темой служебной шины.Моя функция выглядит примерно так:

[FunctionName("SbListener")]
        public static async Task Run(
            [ServiceBusTrigger("test-topic", "test-sub-1", Connection = "ServiceBus")]string message, 
            [Inject("Microsoft.EventStore.Functions", true)] IWebNotificationManagerFactory webNotificationManagerFactory,
            [Inject("Microsoft.EventStore.Functions", true)] ILogger logger)
        { ... }

Конфигурация моей служебной шины находится в файле local.settings.json.

"ConnectionStrings": {
    "ServiceBus": "Endpoint=sb://<my-sb>.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=<my-key>"
}

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

1 Ответ

0 голосов
/ 22 февраля 2019

Поместите тему и подписку в Values в local.settings.json (Настройки приложения на портале) и укажите их, используя выражения привязки настроек приложения - оберните имя настройки приложения с помощью %, отметьте doc .

[ServiceBusTrigger("%Topic%", "%Subscription%", Connection = "ServiceBus")]string message

Кроме того, я бы посоветовал поместить ServiceBus строку подключения в Values, ConnectionStrings используется средами, которые обычно получают строки подключения из раздела ConnectionStrings конфигурациифайл, такой как Entity Framework.См. документ .

...