用途
Azure App Configuration SDK for Java 是 Azure App Configuration 托管服务的客户端库,用于集中管理应用程序配置。它面向需要在 Java 应用中统一读取、写入和维护配置数据的场景,支持键值设置、标签、功能标志、密钥引用和快照等配置管理能力。
主要能力
- 配置项操作:支持新增(add,仅当不存在时创建)、设置(set,创建或覆盖)、获取、更新、删除配置项,并支持基于 ETag 的条件获取、条件更新和条件删除,用于乐观并发控制。
- 列表与筛选:可按键模式(如 app/*)、标签、多个键进行筛选,并可列出配置项的历史修订版本。
- 标签:标签用于区分不同维度的配置,例如按环境(Dev、Staging、Production)隔离设置,并支持列出标签。
- 功能标志:支持创建、获取和更新功能标志,可设置描述和客户端筛选器(如 Microsoft.Percentage 百分比筛选),用于渐进式发布和 A/B 测试。
- 密钥引用:支持创建和获取指向 Key Vault 密钥的引用设置,敏感值可存放在 Key Vault 中。
- 只读保护:可将关键配置设置为只读,也可清除只读状态。
- 快照:支持创建快照(返回轮询器,可等待完成并获取最终结果)、获取快照、列出快照中的配置项、归档快照、恢复快照以及按名称筛选列出所有快照。
- 同步与异步客户端:提供 ConfigurationClient 同步客户端和 ConfigurationAsyncClient 异步客户端,异步客户端支持响应式流操作,适用于高吞吐场景。
- 错误处理:可通过 HttpResponseException 捕获并判断状态码,例如 404 表示设置不存在。
使用方式
安装依赖:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-data-appconfiguration</artifactId>
<version>1.8.0</version>
</dependency>
或使用 Azure SDK BOM:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-sdk-bom</artifactId>
<version>{bom_version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-data-appconfiguration</artifactId>
</dependency>
</dependencies>
前置条件:需要 Azure App Configuration 存储,以及连接字符串或 Entra ID 凭据。
环境变量示例:
AZURE_APPCONFIG_CONNECTION_STRING=Endpoint=https://<store>.azconfig.io;Id=<id>;Secret=<secret>
AZURE_APPCONFIG_ENDPOINT=https://<store>.azconfig.io
使用连接字符串创建客户端:
import com.azure.data.appconfiguration.ConfigurationClient;
import com.azure.data.appconfiguration.ConfigurationClientBuilder;
ConfigurationClient configClient = new ConfigurationClientBuilder()
.connectionString(System.getenv("AZURE_APPCONFIG_CONNECTION_STRING"))
.buildClient();
使用 Entra ID(推荐):
import com.azure.identity.DefaultAzureCredentialBuilder;
ConfigurationClient configClient = new ConfigurationClientBuilder()
.credential(new DefaultAzureCredentialBuilder().build())
.endpoint(System.getenv("AZURE_APPCONFIG_ENDPOINT"))
.buildClient();
创建异步客户端:
import com.azure.data.appconfiguration.ConfigurationAsyncClient;
ConfigurationAsyncClient asyncClient = new ConfigurationClientBuilder()
.connectionString(connectionString)
.buildAsyncClient();
适用场景
- 需要集中管理多个环境(开发、预发布、生产)配置的 Java 应用。
- 需要按标签隔离配置、按键模式批量读取配置的场景。
- 需要功能标志实现渐进式发布或 A/B 测试的场景。
- 需要将敏感配置存放在 Key Vault 并通过密钥引用读取的场景。
- 需要为发布创建不可变配置快照、并支持归档与恢复的场景。
- 需要高吞吐异步读取配置的场景。
限制
- 使用前需要具备 Azure App Configuration 存储以及连接字符串或 Entra ID 凭据。
- 该技能仅适用于与上述范围明确匹配的任务。
- 输出不应替代针对具体环境的验证、测试或专家评审。
- 如果缺少必要的输入、权限、安全边界或成功标准,应停止并请求澄清。
- 资料未提供收费、价格、平台支持范围或性能效果等具体信息。