Azure.Data.AppConfiguration 1.5.0

前缀已保留
dotnet add package Azure.Data.AppConfiguration --version 1.5.0                
NuGet\Install-Package Azure.Data.AppConfiguration -Version 1.5.0                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用了 NuGet 模块的 Install-Package 版本。
<PackageReference Include="Azure.Data.AppConfiguration" Version="1.5.0" />                
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中以引用包。
paket add Azure.Data.AppConfiguration --version 1.5.0                
#r "nuget: Azure.Data.AppConfiguration, 1.5.0"                
#r 指令可以用于 F# Interactive 和 Polyglot Notebooks。将其复制到交互式工具或脚本的源代码中以引用包。
// Install Azure.Data.AppConfiguration as a Cake Addin
#addin nuget:?package=Azure.Data.AppConfiguration&version=1.5.0

// Install Azure.Data.AppConfiguration as a Cake Tool
#tool nuget:?package=Azure.Data.AppConfiguration&version=1.5.0                

Azure App Configuration .NET 客户端库

Azure App Configuration 是一个受管理的服务,它可以帮助开发人员简单和安全地集中管理其应用程序和功能设置。

使用 App Configuration 客户端库可

源代码 | 包 (NuGet) | API 参考文档 | 产品文档 | 示例

入门指南

安装包

使用 NuGet 安装 .NET Azure App Configuration 客户端库

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

验证客户端

为了与应用配置服务交互,您需要创建配置客户端类的实例。要实现这一点,您需要配置存储的连接字符串。

获取凭证

使用以下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 Identity库通过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());

核心概念

配置设置

配置设置是配置存储中的基本资源。在其最简单的形式中,它是一个键和一个值。然而,还有其他属性,如可修改的内容类型和标签字段,允许以不同的方式解释或关联值。

配置设置的标签属性提供了一种将配置设置分开到不同维度的途径。这些维度是用户定义的,可以采取任何形式。用于标签的一些常见维度示例包括地区、语义版本或环境。许多应用程序都有一些必需的配置键,这些键的值随应用程序在不同维度上的存在而变化。

例如,MaxRequests可能在"NorthAmerica"中为100,在"WestEurope"中为200。通过创建一个名为MaxRequests的配置设置,带有"NorthAmerica"标签,另一个只有不同的值,带有"WestEurope"标签,应用程序可以在这两个维度中无缝检索配置设置。

Azure应用配置允许用户创建配置存储的时间点快照,从而使他们能够将设置视为一致版本。此功能使应用程序能够保持对配置的一致视图,确保由于读取更新而不会发生某些设置的个人版本不匹配。快照是不可变的,确保在出现问题时可以自信地将配置回滚到最后已知良好的配置。

线程安全性

我们保证所有客户端实例方法都是线程安全的,并且相互独立(参见指南)。这确保了重用客户端实例的建议始终是安全的,即使在多线程环境下。

其他概念

客户端选项 | 访问响应 | 长时间运行的操作 | 处理失败 | 诊断 | 模拟 | 客户端生命周期

示例

以下部分提供了一些代码片段,涵盖了一些最常见的配置服务任务。请注意,对于这两者都提供了同步和异步方法。

创建配置设置

创建一个将存储在配置存储中的配置设置。存储配置设置有两种方式

  • 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");

创建快照

要创建一个快照,需要实例化ConfigurationSnapshot类并指定筛选器以确定哪些配置设置应该包含在内。创建过程是一个长时间运行的操作(LRO),可以通过调用CreateSnapshot方法实现。

var settingsFilter = new List<ConfigurationSettingsFilter> { new ConfigurationSettingsFilter("some_key") };
var settingsSnapshot = new ConfigurationSnapshot(settingsFilter);

var snapshotName = "some_snapshot";
var operation = client.CreateSnapshot(WaitUntil.Completed, snapshotName, settingsSnapshot);
var createdSnapshot = operation.Value;
Console.WriteLine($"Created configuration snapshot: {createdSnapshot.Name}, Status: {createdSnapshot.Status}");

检索快照

一旦创建了一个配置快照,就可以使用GetSnapshot方法检索它。

var snapshotName = "some_snapshot";
ConfigurationSnapshot retrievedSnapshot = client.GetSnapshot(snapshotName);
Console.WriteLine($"Retrieved configuration snapshot: {retrievedSnapshot.Name}, status: {retrievedSnapshot.Status}");

存档快照

要存档快照,可以使用ArchiveSnapshot方法。此操作将快照的状态更新为存档

var snapshotName = "some_snapshot";
ConfigurationSnapshot archivedSnapshot = client.ArchiveSnapshot(snapshotName);
Console.WriteLine($"Archived configuration snapshot: {archivedSnapshot.Name}, status: {archivedSnapshot.Status}");

恢复快照

可以使用RecoverSnapshot方法恢复存档快照。此操作将快照的状态更新为准备就绪

var snapshotName = "some_snapshot";
ConfigurationSnapshot recoveredSnapshot = client.RecoverSnapshot(snapshotName);
Console.WriteLine($"Recovered configuration snapshot: {recoveredSnapshot.Name}, status: {recoveredSnapshot.Status}");

检索所有快照

要检索所有快照,可以使用GetSnapshots方法。

var count = 0;
foreach (var item in client.GetSnapshots(new SnapshotSelector()))
{
    count++;
    Console.WriteLine($"Retrieved configuration snapshot: {item.Name}, status {item.Status}");
}
Console.WriteLine($"Total number of snapshots retrieved: {count}");

故障排除

有关诊断各种故障场景的详细信息,请参阅我们的故障排除指南

下一步

更多示例代码

这个GitHub仓库中提供了多个App Configuration客户端库示例。这包括

有关更多详细信息,请参阅示例README

贡献

有关构建、测试和对此库做出贡献的详细信息,请参阅App Configuration CONTRIBUTING.md

本项目欢迎贡献和建议。大多数贡献都需要您同意贡献者许可协议(CLA),声明您有权并实际上向我们授予使用您贡献的权利。有关详细信息,请访问cla.microsoft.com

当您提交拉取请求时,CLA-bot 将自动确定您是否需要提供CLA,并相应地装饰PR(例如,标签,评论)。只需遵循机器人提供的说明即可。您在整个使用我们的CLA的所有仓库中只需这样做一次。

本项目已采用Microsoft开源行为准则。有关更多信息,请参阅行为准则常见问题解答或通过[email protected]联系以提出任何额外的问题或评论。

产品 兼容和额外的计算目标框架版本。
.NET net5.0 已计算。 net5.0-windows 已计算。 net6.0 已计算。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
.NET Core netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。
.NET Standard netstandard2.0 兼容。 netstandard2.1 已计算。
.NET Framework net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容目标框架
包含目标框架(在包中)
了解更多关于 目标框架.NET Standard

NuGet 包 (5)

显示依赖于 Azure.Data.AppConfiguration 的前 5 个 NuGet 包

下载
Microsoft.Extensions.Configuration.AzureAppConfiguration

Microsoft.Extensions.Configuration.AzureAppConfiguration 是一种 .NET Core 框架的配置提供程序,允许开发者在应用中将 Microsoft Azure App Configuration 服务作为配置源使用。

Microsoft.Configuration.ConfigurationBuilders.AzureAppConfiguration

一组用于 .Net Framework 的配置构建器,可从 Azure AppConfiguration 存储中获取。

Olive.Azure

Olive 框架

XPike.Configuration.Azure

为 Azure 应用配置服务提供 xPike 配置提供程序。

SimpleToggle.Sources.Azure

为 Simple Toggle 添加 Azure 切换源。包括应用程序配置源。

GitHub 仓库 (4)

显示依赖 Azure.Data.AppConfiguration 的前 4 个最受欢迎的 GitHub 仓库。

仓库 星标
phongnguyend/Practical.CleanArchitecture
全栈 .Net 8 清洁架构(微服务、模块化单体、单体),Blazor、Angular 18、React 18、Vue 3、BFF 使用 YARP、领域驱动设计、CQRS、SOLID、Asp.Net Core 自定义存储、OpenID Connect、Entity Framework Core、OpenTelemetry、SignalR、托管服务、健康检查、速率限制、云服务(Azure、AWS、GCP)。
aspnet/MicrosoftConfigurationBuilders
Microsoft.Configuration.Builders
Azure/azure-sdk-tools
Azure SDK 团队所利用的工具仓库。
jongio/memealyzer
Memealyzer 是一个应用程序,旨在演示一些最新的 Azure 技术,用于开发、调试和部署微服务应用程序。
版本 下载 最后更新
1.5.0 3,527 8/6/2024
1.4.1 1,988,786 4/18/2024
1.4.0 28,384 4/10/2024
1.4.0-beta.1 810 3/7/2024
1.3.0 5,666,753 11/8/2023
1.3.0-beta.3 468 10/9/2023
1.3.0-beta.2 56,786 7/11/2023
1.3.0-beta.1 13,851 10/10/2022
1.2.1 190,643 9/12/2023
1.2.0 30,571,355 10/4/2021
1.2.0-beta.1 462 8/10/2021
1.1.0 435,252 7/7/2021
1.1.0-beta.3 6,090 6/8/2021
1.1.0-beta.2 642 4/6/2021
1.1.0-beta.1 3,428 3/9/2021
1.0.3 118,232 5/14/2021
1.0.2 583,797 9/11/2020
1.0.1 104,419 7/7/2020
1.0.0 20,242,080 1/7/2020
1.0.0-preview.6 4,104 12/6/2019
1.0.0-preview.5 188,322 11/21/2019
1.0.0-preview.4 154,224 10/31/2019
1.0.0-preview.3 876 10/17/2019
1.0.0-preview.2 372 10/7/2019
1.0.0-preview.1 423 9/10/2019