Можем ли мы получить configurationClient и / или secretClient из объекта построителя конфигурации в ядре AzureFunction .net?
Я работал над проектом, который требовал от меня создать ссылку на Keyvault в azure AppConfiguration, добавить / обновить секреты в KeyVault и получить доступ к значениям в AppConfiguration с помощью конфигурации. В настоящее время я использую:
-ConfigurationClient для создания ключевой ссылки на хранилище.
-SecretClient для добавления / обновления секретов в KeyVault.
-Configuration build с использованием builder.AddAzureAppConfiguration(). Build() для доступа к значениям в AppConfiguration.(Использование builder.AddAzureAppConfiguration() является необходимостью из-за его функций).
Итак, в основном здесь выполняется 3 подключения к лазурному. Есть ли способ уменьшить нет. подключений? Например, использование ConfigurationBuilder для получения ConfigurationClient и / или SecretClient.
1 ответ
Поскольку ваше приложение обращается к двум разным ресурсам, конфигурации приложения и хранилищу ключей, необходимо как минимум два подключения. Это связано с отсутствием поддержки общих подключений к различным службам.
Предполагая, что ваше приложение использует ConfigureKeyVault
для доступа к ссылкам на Key Vault вызов AddAzureAppConfiguration().Build()
фактически создает два подключения - одно к конфигурации приложения, а другое к Key Vault. В данном случае всего 4 подключения. Вы можете уменьшить его до 3, зарегистрировавSecretClient
вы создали для добавления / обновления секретов в Key Vault в AddAzureAppConfiguration
метод.
SecretClient secretClient = new SecretClient(new Uri("http://my-keyvault-uri"), new DefaultAzureCredential());
builder.AddAzureAppConfiguration(options =>
{
options.Connect(settings["connection_string"])
.ConfigureKeyVault(kv => kv.Register(secretClient));
});
В настоящее время не существует поддерживаемого способа предоставить существующий экземпляр ConfigurationClient
при настройке AddAzureAppConfiguration
метод, но он может поддерживаться в будущем.