node.js - 访问引用 Node.js 中的 Key Vault 的 Azure 应用程序配置设置

标签 node.js azure-functions azure-keyvault azure-app-configuration

对于在 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/

相关文章:

azure - 获取 Azure Key Vault 的 oauth token

node.js - $push 聚合的限制

node.js - @angular-cli 安装失败,request@2.88.2 : request has been deprecated (mac) 已弃用

azure - 关闭 Azure Function 中的 AwaysOn 以获得免费的应用服务计划?

azure arm 模板将 azure key Vault 扩展部署到 VM

Azure Key Vault - 如何备份和恢复?

node.js - 当机器人在 Teams 中发送消息时,如何收到通知?

node.js - 如何使用 Google Drive API 在团队云端硬盘中创建文件

azure - 发布 Azure 函数

azure - 使用 Cosmos DB 绑定(bind)从 Azure 函数执行 Cosmos DB 服务器端触发器