Функция Azure - получение строки подключения служебной шины из хранилища ключей Azure. - PullRequest
1 голос
/ 22 октября 2019

У меня есть функция 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' отсутствует или пуста

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

Есть ли способ установить строку подключения служебной шины во время выполнения?

1 Ответ

0 голосов
/ 23 октября 2019

Вы можете установить @Microsoft.KeyVault(SecretUri=Secret URI with version) в Application Setting в функции.

1.Включить Identity вашей функции Azure.

2. Перейти в раздел Access Control вхранилище ключей и нажмите Добавить блейд назначения ролей, назначьте роль субъекту службы вашей функции.

3. Перейдите в хранилище ключей, нажмите Access Policies, а затем нажмите Добавить политику к службе своей функции. принципал с ключом или секретным разрешением.

4.Используйте секрет хранилища ключей в функции Azure.

Для получения дополнительной информации см. эту статью .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...