你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 应用程序配置适用于 .NET 的客户端库 - 版本 1.2.1
Azure 应用配置是一项托管服务,可帮助开发人员轻松且安全地集中管理其应用程序和功能设置。
使用用于应用程序配置的客户端库可以:
源代码 | 包 (NuGet) | API 参考文档 | 产品文档 | 样品
入门
安装包
使用 NuGet 安装适用于 .NET 的 Azure 应用程序配置 客户端库:
dotnet add package Azure.Data.AppConfiguration
先决条件
如果需要创建配置存储,可以使用 Azure 门户或 Azure CLI。
可以使用 Azure CLI 通过以下命令创建配置存储:
az appconfig create --name <config-store-name> --resource-group <resource-group-name> --location eastus
验证客户端
若要与 应用程序配置 服务交互,需要创建 Configuration Client 类的实例。 为此,需要配置存储的连接字符串。
获取凭据
使用以下 Azure CLI 代码片段从配置存储中获取连接字符串。
az appconfig credential list --name <config-store-name>
或者,从 Azure 门户获取连接字符串。
创建 ConfigurationClient
获得连接字符串的值后,可以创建 ConfigurationClient:
string connectionString = "<connection_string>";
var client = new ConfigurationClient(connectionString);
使用 Azure Active Directory 凭据创建 ConfigurationClient
本入门指南中的大多数示例都使用了客户端订阅密钥身份验证,但也可以使用 Azure 标识库通过 Azure Active Directory 进行身份验证。 若要使用如下所示的 DefaultAzureCredential 提供程序或 Azure SDK 提供的其他凭据提供程序,请安装 Azure.Identity 包:
dotnet add package Azure.Identity
还需要注册新的 AAD 应用程序,并通过向服务主体分配 "App Configuration Data Reader"
或 "App Configuration Data Owner"
角色来授予对配置存储的访问权限。
将 AAD 应用程序的客户端 ID、租户 ID 和客户端密码的值设置为环境变量:AZURE_CLIENT_ID、AZURE_TENANT_ID、AZURE_CLIENT_SECRET。
string endpoint = "<endpoint>";
var client = new ConfigurationClient(new Uri(endpoint), new DefaultAzureCredential());
关键概念
配置设置
配置设置是配置存储中的基本资源。 在最简单的形式中,它是一个键和一个值。 但是,还有其他属性,例如可修改的内容类型和标记字段,它们允许以不同方式解释或关联值。
配置设置的 Label 属性提供了一种将配置设置划分为不同维度的方法。 这些维度是用户定义的,可以采用任何形式。 用于标签的维度的一些常见示例包括区域、语义版本或环境。 许多应用程序都有一组必需的配置键,这些键具有不同的值,因为应用程序存在于不同的维度中。
例如,MaxRequests 在“NorthAmerica”中可以为 100,在“WestEurope”中为 200。 通过创建一个名为 MaxRequests 且标签为“NorthAmerica”和另一个(仅具有不同值)的“WestEurope”标签的配置设置,应用程序可以在这两个维度中运行时无缝检索配置设置。
线程安全
我们保证所有客户端实例方法都是线程安全的,并且相互独立, (准则) 。 这可确保重用客户端实例的建议始终是安全的,即使跨线程也是如此。
其他概念
客户端选项 | 访问响应 | 长时间运行的操作 | 处理失败 | 诊断 | 嘲笑 | 客户端生存期
示例
以下部分提供了几个代码片段,涵盖了一些最常见的配置服务任务。 请注意,这两者都有可用的同步和异步方法。
创建配置设置
创建要存储在配置存储中的配置设置。 可通过两种方法来存储配置设置:
- AddConfigurationSetting 仅当存储区中尚不存在该设置时,才会创建设置。
- 如果设置不存在,SetConfigurationSetting 将创建一个设置,或者替代现有设置。
string connectionString = "<connection_string>";
var client = new ConfigurationClient(connectionString);
var settingToCreate = new ConfigurationSetting("some_key", "some_value");
ConfigurationSetting setting = client.SetConfigurationSetting(settingToCreate);
检索配置设置
通过调用 GetConfigurationSetting 检索以前存储的配置设置。 此代码片段假定配置存储中存在设置“some_key”。
string connectionString = "<connection_string>";
var client = new ConfigurationClient(connectionString);
ConfigurationSetting setting = client.GetConfigurationSetting("some_key");
更新现有配置设置
通过调用 SetConfigurationSetting 更新现有配置设置。 此代码片段假定配置存储中存在设置“some_key”。
string connectionString = "<connection_string>";
var client = new ConfigurationClient(connectionString);
ConfigurationSetting setting = client.SetConfigurationSetting("some_key", "new_value");
删除配置设置
通过调用 DeleteConfigurationSetting 删除现有配置设置。 此代码片段假定配置存储中存在设置“some_key”。
string connectionString = "<connection_string>";
var client = new ConfigurationClient(connectionString);
client.DeleteConfigurationSetting("some_key");
疑难解答
有关如何诊断各种故障方案的详细信息,请参阅故障排除 指南 。
后续步骤
更多示例代码
在此 GitHub 存储库中提供了几个应用程序配置客户端库示例。 其中包括:
- Hello world:创建和删除配置设置。
- Hello world async with labels:异步创建、更新和删除包含标签的配置设置。
- 将配置设置设为只读:使配置设置只读,然后将其返回到读写状态。
- 读取修订历史记录:读取已更改的配置设置的修订历史记录。
- 如果已更改,则获取设置:仅当设置不同于本地副本时,才使用条件请求来检索设置,从而节省带宽。
- 更新设置(如果尚未更改):仅当本地更新应用于配置存储中资源所在的同一版本时,才使用乐观并发来更新设置,从而防止更新丢失。
- 创建模拟客户端:模拟客户端以进行测试。
有关详细信息,请参阅 示例自述文件。
贡献
有关构建、测试和参与此库的详细信息,请参阅应用程序配置 CONTRIBUTING.md。
本项目欢迎贡献和建议。 大多数贡献要求你同意贡献者许可协议 (CLA),并声明你有权(并且确实有权)授予我们使用你的贡献的权利。 有关详细信息,请访问 cla.microsoft.com。
提交拉取请求时,CLA 机器人将自动确定你是否需要提供 CLA,并相应地修饰 PR(例如标签、注释)。 直接按机器人提供的说明操作。 只需使用 CLA 对所有存储库执行一次这样的操作。
此项目采用了 Microsoft 开放源代码行为准则。 有关详细信息,请参阅行为准则常见问题解答,或如果有任何其他问题或意见,请与 联系。