1

我正在处理一个项目,该项目需要我在 azure AppConfiguration 中创建 Keyvault 引用,在 KeyVault 中添加/更新机密,并使用 Configuration 访问 AppConfiguration 中的值。目前,我正在使用:

-ConfigurationClient 创建密钥保管库参考。

-SecretClient 在 KeyVault 中添加/更新机密。

- 使用 builder.AddAzureAppConfiguration().build() 来访问 AppConfiguration 中的值的配置构建。(由于其功能,使用 builder.AddAzureAppConfiguration() 是必要的)。

因此,这里基本上建立了 3 个与 azure 的连接。有什么办法可以减少数量。的连接?比如,使用 ConfigurationBuilder 来获取 ConfigurationClient 和/或 SecretClient。

4

1 回答 1

0

由于您的应用程序正在访问两个不同的资源,即应用程序配置和 Key Vault,因此至少需要两个连接。这是由于缺乏对跨不同服务的共享连接的支持。

假设您的应用程序ConfigureKeyVault用于访问 Key Vault 引用,则调用AddAzureAppConfiguration().Build()实际上是创建两个连接 - 一个连接到 App Configuration,另一个连接到 Key Vault。在这种情况下,总共有 4 个连接。SecretClient您可以通过在方法中注册您创建的以在 Key Vault 中添加/更新机密来将其减少到 3 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方法时提供现有实例的方式,但将来可能会支持这种方式。

于 2020-05-18T15:08:19.410 回答