Использование AddAzureKeyVault замедляет мое приложение на 10 секунд - PullRequest
0 голосов
/ 30 октября 2018

У меня очень простое приложение .NET Core:

    static void Main(string[] args)
    {
        var builder = new ConfigurationBuilder()
           .SetBasePath(Directory.GetCurrentDirectory())
           .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);

        builder.AddAzureKeyVault("https://MyKeyVault.vault.azure.net");

        var stopwatch = new Stopwatch();
        stopwatch.Start(); 
        var configuration = builder.Build();
        var elapsed = stopwatch.Elapsed;

        Console.WriteLine($"Elapsed time: {elapsed.TotalSeconds}");
    }

csproj-файл выглядит так:

<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
  <OutputType>Exe</OutputType>
  <TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>

<ItemGroup>
  <PackageReference Include="Microsoft.Extensions.Configuration" Version="2.1.1" />
  <PackageReference Include="Microsoft.Extensions.Configuration.AzureKeyVault" Version="2.1.1" />
  <PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="2.1.1" />
  <PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="2.1.1" />
  <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.1.1" />
</ItemGroup>

</Project>

Моя проблема в том, что приложению требуется около 10 секунд для выполнения с подключенным отладчиком (около 5 секунд без отладчика). Если я удаляю строку с AddAzureKeyVault , приложение выполняется менее чем за секунду. Я знаю, что AddAzureKeyVault заставит приложение подключаться к Azure и считывать значения из хранилища ключей, но я ожидал, что это будет намного быстрее.

Это ожидаемое поведение? Что я могу сделать, чтобы сделать это быстрее?

1 Ответ

0 голосов
/ 31 октября 2018

Вы можете попытаться получить Azure KeyVault с clientId и clientSecret, и он может работать быстрее.

builder.AddAzureKeyVault("https://yourkeyvaultname.vault.azure.net", clientId,clinetSecret);

И я тестирую с ним, и это стоит 3 секунды.

enter image description here

Для получения более подробной информации вы можете обратиться к этой статье .

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