SuperAPI AI 工具集

azure-appconfiguration-java

部署与运维

查看项目

更新于 10-16 02:59

技能介绍

用途

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 凭据。
  • 该技能仅适用于与上述范围明确匹配的任务。
  • 输出不应替代针对具体环境的验证、测试或专家评审。
  • 如果缺少必要的输入、权限、安全边界或成功标准,应停止并请求澄清。
  • 资料未提供收费、价格、平台支持范围或性能效果等具体信息。