@azure/app-configuration

中文文档
1.13.1发布于 2026/10/28MITTypeScriptESM + CJS近 30 天下载 87.4万

Azure App 配置服务的同位素客户端库.

中文使用文档
文档目录21 节
  1. 选择正确的软件包
  2. 开始
  3. 安装软件包
  4. 目前得到支持的环境
  5. 先决条件
  6. 创建 App 配置资源
  7. 认证客户端
  8. 关键概念
  9. 实例
  10. 创建并获得一个设置
  11. 创建快照
  12. 获取快照
  13. 列出 ConfigurationSetting 在快照内
  14. 列出服务中的所有快照
  15. 恢复并归档快照
  16. 解决问题
  17. 日志
  18. 反应原生支持
  19. 今后的步骤
  20. 捐款
  21. 相关项目

JavaScript 的 Azure App 配置客户端库

Azure App 配置 是一种管理服务,帮助开发人员简单地和安全地集中其应用程序和功能设置.

密钥链接 :

选择正确的软件包

使用 @ azure/ app- 配置 (本图书馆)改为:

  • 在 Azure App 配置中管理配置设置和快照
  • 执行正常配置消耗范围以外的颗粒读取

大多数应用程序应该从 @ azure/ app- configration- 提供者 库,它基于这个低级客户端库,是运行时消费配置的建议方式. 它补充说:

  • 使用配置作为密钥/ 值图或结构化 JSON 对象的灵活访问模式
  • 解析应用程序配置的查询机制
  • 运行时刷新配置
  • 具有高可靠性的缓存、复制发现、故障和负载平衡
  • 密钥库参考解析和自动更新
  • 特性旗集成 @ 微软/ 地貌管理 图书馆

欲了解更多信息,请前往 配置提供者概览。 。 。 .

开始

安装软件包

npm install @azure/app-configuration

说明: 对于申请 只需要读取配置值我们建议使用 @ azure/ app- configration- 提供者 图书馆.

目前得到支持的环境

看我们的 支助政策 更多细节.

先决条件

创建 App 配置资源

你可以用这个 Azure 门户 或 阿苏尔CLI 创建 Azure App 配置资源.

示例(Azure CLI):

az appconfig create --name <app-configuration-resource-name> --resource-group <resource-group-name> --location eastus

认证客户端

AppConfigation 客户端可以使用 服务本金 或使用 连接字符串。 。 。 .

使用服务本金认证

通过服务本金进行认证的方式如下:

  • 使用 @azure/identity 软件包.
  • 在您的配置资源上设定相应的 RBAC 规则 . 关于 App 配置角色的更多信息可以找到 这里。 。 。 .

使用 默认标记

import { DefaultAzureCredential } from "@azure/identity";
import { AppConfigurationClient } from "@azure/app-configuration";

// The endpoint for your App Configuration resource
const endpoint = "https://example.azconfig.io";
const credential = new DefaultAzureCredential();
const client = new AppConfigurationClient(endpoint, credential);

更多关于 @azure/identity 可见 这里

主权云

用资源认证 a 主权云,您需要设置 audience 输入 AppConfigurationClient 构造器选项 .

import { AppConfigurationClient, KnownAppConfigAudience } from "@azure/app-configuration";
import { DefaultAzureCredential } from "@azure/identity";

// The endpoint for your App Configuration resource
const endpoint = "https://example.azconfig.azure.cn";
// Create an AppConfigurationClient that will authenticate through AAD in the China cloud
const client = new AppConfigurationClient(endpoint, new DefaultAzureCredential(), {
  audience: KnownAppConfigAudience.AzureChina,
});

注:何时 audience 未定义属性, SDK 将默认为 Azure Public Cloud .

正在使用连接字符串认证

要得到小学 连接字符串 对于 App 配置资源, 您可以使用此 Azure CLI 命令 :

az appconfig credential list -g <resource-group-name> -n <app-configuration-resource-name> --query "([?name=='Primary'].connectionString)[0]"

您可以在代码中创建您的 App 配置客户端 连接字符串 你从AzureCLI得到:

import { AppConfigurationClient } from "@azure/app-configuration";

const connectionString = "Endpoint=https://example.azconfig.io;XXX=YYYY;YYY=ZZZZ";
const client = new AppConfigurationClient(connectionString);

关键概念

这个 AppConfigurationClient 从门户网站的 App 配置中有一些术语变化 .

  • 键/等值对表示为 ConfigurationSetting 对象
  • 锁定和解锁一个设置在 isReadOnly 字段,可以切换 setReadOnly。 。 。 .
  • 抓图显示为 ConfigurationSnapshot 对象.

客户采用简单的设计方法 ConfigurationSetting 能够传递到任何一种方法 ConfigurationSettingParam 或者说 ConfigurationSettingId。 。 。 .

这意味着这个模式的工作:

import { DefaultAzureCredential } from "@azure/identity";
import { AppConfigurationClient } from "@azure/app-configuration";

// The endpoint for your App Configuration resource
const endpoint = "https://example.azconfig.io";
const credential = new DefaultAzureCredential();
const client = new AppConfigurationClient(endpoint, credential);

const setting = await client.getConfigurationSetting({
  key: "hello",
});

setting.value = "new value!";
await client.setConfigurationSetting(setting);

// fields unrelated to just identifying the setting are simply
// ignored (for instance, the `value` field)
await client.setReadOnly(setting, true);

// delete just needs to identify the setting so other fields are
// just ignored
await client.deleteConfigurationSetting(setting);

或,例如,重新设置:

import { DefaultAzureCredential } from "@azure/identity";
import { AppConfigurationClient } from "@azure/app-configuration";

// The endpoint for your App Configuration resource
const endpoint = "https://example.azconfig.io";
const credential = new DefaultAzureCredential();
const client = new AppConfigurationClient(endpoint, credential);

let setting = await client.getConfigurationSetting({
  key: "hello",
});

// re-get the setting
setting = await client.getConfigurationSetting(setting);

这个 2022-11-01-preview API版本支持配置快照:不可变,即时复制一个配置商店. 可使用确定快照中包含哪些密钥值对的过滤器来创建快照,从而创建一个由配置库构成的不可改变的视图. 这个特性使应用程序能够持有一致的配置视图,确保不会因为更新时的读取而使版本不匹配到单个设置. 例如,这个功能可用于在App配置中创建"释放配置快照". 见 页:1 创建并获得快照 节 以下文为例.

实例

说明: 如果您的应用程序仅需要检索配置值而不需要执行配置设置上的创建、更新或删除操作,请考虑使用 @ azure/ app- configration- 提供者 图书馆。 提供者库为在运行时加载配置数据提供了简化的经验 其他特性您可以在 Azure App 配置文档中找到许多代码样本 微软学习。 。 。 .

创建并获得一个设置

import { DefaultAzureCredential } from "@azure/identity";
import { AppConfigurationClient } from "@azure/app-configuration";

// The endpoint for your App Configuration resource
const endpoint = "https://example.azconfig.io";
const credential = new DefaultAzureCredential();
const client = new AppConfigurationClient(endpoint, credential);

await client.setConfigurationSetting({
  key: "testkey",
  value: "testvalue",
  // Labels allow you to create variants of a key tailored
  // for specific use-cases like supporting multiple environments.
  // https://learn.microsoft.com/azure/azure-app-configuration/concept-key-value#label-keys
  label: "optional-label",
});

const retrievedSetting = await client.getConfigurationSetting({
  key: "testkey",
  label: "optional-label",
});

console.log("Retrieved value:", retrievedSetting.value);

创建快照

beginCreateSnapshot 让传票人去调查快照的制作.

import { DefaultAzureCredential } from "@azure/identity";
import { AppConfigurationClient } from "@azure/app-configuration";

// The endpoint for your App Configuration resource
const endpoint = "https://example.azconfig.io";
const credential = new DefaultAzureCredential();
const client = new AppConfigurationClient(endpoint, credential);

const key = "testkey";
const value = "testvalue";
const label = "optional-label";

await client.addConfigurationSetting({
  key,
  value,
  label,
});

const poller = await client.beginCreateSnapshot({
  name: "testsnapshot",
  retentionPeriod: 2592000,
  filters: [{ keyFilter: key, labelFilter: label }],
});
const snapshot = await poller.pollUntilDone();

您还可以使用 beginCreateSnapshotAndWait 在投票结束后直接获得创作结果.

import { DefaultAzureCredential } from "@azure/identity";
import { AppConfigurationClient } from "@azure/app-configuration";

// The endpoint for your App Configuration resource
const endpoint = "https://example.azconfig.io";
const credential = new DefaultAzureCredential();
const client = new AppConfigurationClient(endpoint, credential);

const key = "testkey";
const value = "testvalue";
const label = "optional-label";

const snapshot = await client.beginCreateSnapshotAndWait({
  name: "testsnapshot",
  retentionPeriod: 2592000,
  filters: [{ keyFilter: key, labelFilter: label }],
});

获取快照

import { DefaultAzureCredential } from "@azure/identity";
import { AppConfigurationClient } from "@azure/app-configuration";

// The endpoint for your App Configuration resource
const endpoint = "https://example.azconfig.io";
const credential = new DefaultAzureCredential();
const client = new AppConfigurationClient(endpoint, credential);

const retrievedSnapshot = await client.getSnapshot("testsnapshot");
console.log("Retrieved snapshot:", retrievedSnapshot);

列出 ConfigurationSetting 在快照内

import { DefaultAzureCredential } from "@azure/identity";
import { AppConfigurationClient } from "@azure/app-configuration";

// The endpoint for your App Configuration resource
const endpoint = "https://example.azconfig.io";
const credential = new DefaultAzureCredential();
const client = new AppConfigurationClient(endpoint, credential);

const retrievedSnapshotSettings = await client.listConfigurationSettingsForSnapshot("testsnapshot");

for await (const setting of retrievedSnapshotSettings) {
  console.log(`Found key: ${setting.key}, label: ${setting.label}`);
}

列出服务中的所有快照

import { DefaultAzureCredential } from "@azure/identity";
import { AppConfigurationClient } from "@azure/app-configuration";

// The endpoint for your App Configuration resource
const endpoint = "https://example.azconfig.io";
const credential = new DefaultAzureCredential();
const client = new AppConfigurationClient(endpoint, credential);

const snapshots = await client.listSnapshots();

for await (const snapshot of snapshots) {
  console.log(`Found snapshot: ${snapshot.name}`);
}

恢复并归档快照

import { DefaultAzureCredential } from "@azure/identity";
import { AppConfigurationClient } from "@azure/app-configuration";

// The endpoint for your App Configuration resource
const endpoint = "https://example.azconfig.io";
const credential = new DefaultAzureCredential();
const client = new AppConfigurationClient(endpoint, credential);

// Snapshot is in ready status
const archivedSnapshot = await client.archiveSnapshot("testsnapshot");
console.log("Snapshot updated status is:", archivedSnapshot.status);

// Snapshot is in archive status
const recoverSnapshot = await client.recoverSnapshot("testsnapshot");
console.log("Snapshot updated status is:", recoverSnapshot.status);

解决问题

日志

允许伐木可能有助于发现有关失败的有用信息。 为了查看 HTTP 请求和回复的日志,设置 AZURE_LOG_LEVEL 环境变量改为 info。或者,可以在运行时拨打 setLogLevel 输入 @azure/logger数字 :

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

关于如何启用日志的更详细指示,您可以查看 @ azure/ logger 包文件。 。 。 .

反应原生支持

React Introduct不支持这个SDK库使用的一些JavaScript API,所以需要为他们提供多填充. 请看我们的 以 Expo 反应原生样本 更多细节.

今后的步骤

下列样本显示您可以与 App 配置交互的各种方式 :

更深入的例子可见于本报告 样本 gitHub 上的文件夹.

捐款

如果您想为图书馆捐钱 请读一下 贡献指南 学习如何构建和测试密码.

这个模块的测试是现场测试和单元测试的混合,这需要您有一个Azure App配置实例. 执行测试需要运行:

  1. pnpm install
  2. pnpm build --filter @azure/app-configuration...
  3. 创建 .env 文件,其中包含这些内容 sdk\appconfiguration\app-configuration 文件夹 : APPCONFIG_CONNECTION_STRING=connection string for your App Configuration instance
  4. cd sdk\appconfiguration\app-configuration
  5. npm run test。 。 。 .

查看我们的 测试 详细文件夹.

版本与发布记录

@azure/app-configuration 共发布 694 个版本,首次发布于 2019/09/13;过去 12 个月发布了 76 个版本。

版本发布日期距今
1.13.1latest2026/10/2810 天前
1.13.0-beta.2beta2026/10/1623 天前
1.13.02026/09/231 个月前
1.13.0-beta.12026/08/222 个月前
1.12.12026/06/234 个月前
1.12.02026/06/204 个月前

其他发布通道:dev → 1.11.1-alpha.20260310.1,beta → 1.13.0-beta.2。

关于 @azure/app-configuration 的常见问题

@azure/app-configuration 是什么?

Azure App 配置服务的同位素客户端库.

如何安装 @azure/app-configuration?

在项目目录运行 npm install @azure/app-configuration,或使用 pnpm add / yarn add / bun add。

@azure/app-configuration 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@azure/app-configuration 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@azure/app-configuration 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@azure/app-configuration 可以商用吗?

@azure/app-configuration 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@azure/app-configuration 的下载量有多少?

根据 npm 官方下载统计,@azure/app-configuration 在 2026/10/08 – 2026/11/06 这 30 天内被下载 873,526 次,日均约 29,118 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@azure/app-configuration 还在维护吗?

最新版本 1.13.1 发布于 2026/10/28(10 天前);至今共发布 694 个版本,其中过去 12 个月发布了 76 个;首次发布于 2019/09/13。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。