对于在 Linux 上运行的 Azure 函数,使用 Node.js 运行时 v14,
我想使用@azure/app-configuration
读取应用配置,
当某些配置值是明文,但其他配置值是 keyvault 的连接字符串时。
我的同事使用 C# 编写,正在使用 AzureAppConfigurationOptions
上的 ConfigureKeyVault
方法来配置 Azure 应用程序配置 SDK,以自动从其连接解析、获取和解码 secret 字符串。
我想在nodejs中做同样的事情,但在API docs中没有找到类似的方法
我必须做这样的事情吗?
async function getConfig(key: string): Promise<string> {
const maybeConnectionString = await appConfigurationClient.getConfigurationSetting({ key });
if (maybeConnectionString.startsWith('@Microsoft.KeyVault'))
return await keyVaultClient.getSecret(maybeConnectionString);
else
return maybeConnectionString;
}
最佳答案
本尼·鲍尔斯,是的,你是对的。要在 Node.js 中使用 Key Vault 引用,您必须获取键值,解析 key 标识符的值,然后从 Key Vault 中检索实际 key 。正如您提到的,这已作为 .NET 配置提供程序的一部分实现,但如果您使用 JS SDK,则必须执行此操作。
在实现方面,您应该首先检查键值的 content-type 是否为 application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8
。如果是,则表示此键值是 Key Vault 引用。然后就可以解析该值了。该值采用 JSON 格式,类似于 {"uri":"https://xxxxxx.vault.azure.net/secrets/....."}
。 uri 指向的是 secret 标识符。获得 secret 标识符后,您可以像以前一样使用 Key Valut 客户端获取实际的 secret 。
关于node.js - 访问引用 Node.js 中的 Key Vault 的 Azure 应用程序配置设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65919559/