Azure Функция для использования соединения с Azure Локальная разработка Key Vault - PullRequest
0 голосов
/ 13 июля 2020

Мы разрабатываем функцию локально, и хотя мы можем использовать ConfigurationBuilder (). AddAzureKeyVault () при запуске для получения секретов Key Vault, мы изо всех сил пытаемся заставить триггер Queue получить строку подключения из Key Vault. Как видно ниже, соединение в настоящее время извлекается из ключа AzureWebJobsStorage, присутствующего в local.settings. json:

    [FunctionName("myFunction")]
    public async Task MyFunction([QueueTrigger("aQueue", Connection = "AzureWebJobsStorage")] Car myCar)
    {
        await getCarAsync(myCar.Name);
    }

local.settings. json

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=....",

1 Ответ

0 голосов
/ 14 июля 2020

Если вы используете внедрение зависимостей с FunctionsStartup или IWebJobsStartup, вы можете установить строку подключения из keyvault следующим образом.

  1. Установите свойство Connection в QueueTriggerAttribute в пустую строку, например

     [FunctionName("myFunction")]
     public async Task MyFunction([QueueTrigger("aQueue", Connection = "")] Car myCar)
     {
         await getCarAsync(myCar.Name);
     }
    

В вашем классе запуска используйте PostConfigure<QueueAttribute>() для установки значения строки подключения, например,

public class Startup : FunctionsStartup
{
  public override void Configure(IFunctionsHostBuilder builder)
  {
     builder.Services.PostConfigure<QueueTriggerAttribute>(x =>
     {
         x.Connection = ReadQueueConnectionStringFromKeyvault();
     });
  }
}

Другой альтернативой, которую следует рассмотреть, является Ссылки на KeyVault

...