Как я могу получить раздел служебной шины из конфигурации при использовании IAsyncCollector?

#azure-functions #azureservicebus #azure-servicebus-topics

#azure-функции #azureservicebus #azure-servicebus-темы

Вопрос:

У меня есть функция Azure, которая публикует некоторые сообщения на служебной шине, объявленные следующим образом:

 [FunctionName(FunctionNames.PublishMessages)]
public async Task PublishMessages(
    [ActivityTrigger] IEnumerable<Foo> messages,
    [ServiceBus("TopicName", Connection = "ServiceBusConnectionString")] IAsyncCollector<string> collector,
    ILogger log)
{
    foreach (var message in messages)
    {
        await collector.AddAsync(JsonSerializer.Serialize(message));
    }

    await collector.FlushAsync();
}
 

Выходная привязка для служебной шины принимает имя раздела и имя ключа конфигурации, значение которого содержит строку подключения.

Вместо жесткого кодирования темы в сигнатуре метода я хотел бы получить ее из конфигурации функции таким же образом, как я получаю строку подключения. Возможно ли это? Любая помощь приветствуется.

Ответ №1:

Вы можете сделать это, сославшись на него с помощью % . So

 [ServiceBus("%TopicNameSetting%", Connection = ...
 

и создайте настройку приложения с помощью ключа TopicNameSetting