У меня есть функция Azure, которая запускается в контейнере Docker. Эта функция должна использовать служебную шину Azure. Поэтому моя функция использует атрибут «ServiceBusAccount» для получения строки подключения служебной шины
[FunctionName("MyFunc")]
[ServiceBusAccount("ServiceBusConnectionString")]
public async Task MyFunc(...)
...
В конструкторе конфигурации я запускаю следующий код, чтобы получить некоторые значения из хранилища ключей Azure (включая служебную шину)строка подключения):
var configBuilder = new ConfigurationBuilder();
var config = configBuilder.AddAzureKeyVault($"https://{config["keyVaultName"]}.vault.azure.net", config["keyVaultClientId"], config["keyVaultSecret"])
.Build();
Проблема в том, что во время запуска хоста я сначала получил предупреждение:
"Предупреждение: не удается найти значение с именем 'ServiceBusConnectionString'"
, а затем после обнаружения моей функции я получил эту ошибку:
Произошла ошибка хоста. Microsoft.Azure.WebJobs.ServiceBus: Строка подключения ServiceBus SDK Microsoft Azure WebJobs 'ServiceBusConnectionString' отсутствует или пуста
Насколько я понимаю, среда хоста пытается получить строку подключения служебной шины еще до запускадо функции и до того, как построитель конфигурации будет вызван в классе запуска проекта.
Есть ли способ установить строку подключения служебной шины во время выполнения?