快速入门:使用 Azure 应用配置创建 ASP.NET Core 应用
本快速入门将使用 Azure 应用程序配置来外部化 ASP.NET Core 应用的应用程序设置的存储和管理。 ASP.NET Core 使用来自一个或多个配置提供程序的设置生成单个基于键值的配置对象。 应用程序配置提供了一个 .NET 配置提供程序库。 因此,可以使用应用程序配置作为应用的额外配置源。 如果你有一个现有的应用,要开始使用应用程序配置,你只需要对你的应用启动代码进行一些小更改。
先决条件
- Azure 订阅 - 创建试用版订阅
- .NET Core SDK
添加键值
将以下键值添加到应用程序配置存储区,并让“标签”和“内容类型”保留默认值。 有关如何使用 Azure 门户或 CLI 将键值添加到存储区的详细信息,请转到创建键值。
密钥 | 值 |
---|---|
TestApp:Settings:BackgroundColor | white |
TestApp:Settings:FontColor | black |
TestApp:Settings:FontSize | 24 |
TestApp:Settings:Message | Azure 应用配置的数据 |
创建一个 ASP.NET Core Web 应用
使用 .NET Core 命令行接口 (CLI) 创建新的 ASP.NET Core Web 应用项目。
运行以下命令,在新的 TestAppConfig 文件夹中创建 ASP.NET Core Web 应用:
dotnet new webapp --output TestAppConfig --framework net6.0
连接到应用程序配置存储区
导航到项目的目录 TestAppConfig,并运行以下命令来添加 Microsoft.Azure.AppConfiguration.AspNetCore NuGet 包引用:
dotnet add package Microsoft.Azure.AppConfiguration.AspNetCore
运行以下命令。 该命令使用机密管理器来存储名为
ConnectionStrings:AppConfig
的机密,该机密存储应用程序配置存储区的连接字符串。 将<your_connection_string>
占位符替换为应用程序配置存储区的连接字符串。 可以在 Azure 门户的应用程序配置存储中的“访问密钥”下找到该连接字符串。dotnet user-secrets init dotnet user-secrets set ConnectionStrings:AppConfig "<your_connection_string>"
提示
有些 shell 会截断连接字符串,除非将连接字符串括在引号中。 确保
dotnet user-secrets list
命令的输出显示整个连接字符串。 如果未显示,请重新运行该命令,并将连接字符串括在引号中。机密管理器将机密存储在项目树之外,这有助于防止意外共享源代码中的机密。 它仅用于本地测试 Web 应用。 将应用部署到 Azure(如应用服务)时,请使用“连接字符串”、“应用程序设置”或环境变量来存储连接字符串。 或者,为了避免一起使用连接字符串,可使用托管标识或其他 Microsoft Entra 标识连接到应用程序配置。
打开 Program.cs,通过调用
AddAzureAppConfiguration
方法添加 Azure 应用程序配置作为额外的配置源。var builder = WebApplication.CreateBuilder(args); // Retrieve the connection string string connectionString = builder.Configuration.GetConnectionString("AppConfig"); // Load configuration from Azure App Configuration builder.Configuration.AddAzureAppConfiguration(connectionString); // The rest of existing code in program.cs // ... ...
此代码将使用连接字符串连接到你的应用程序配置存储,并加载所有没有标签的键值。 有关应用程序配置提供程序的更多信息,请参阅应用程序配置提供程序 API 参考。
从应用程序配置存储区读取数据
在此示例中,你将使用你在应用程序配置存储区中配置的设置来更新网页以显示其内容。
在项目目录的根目录下添加一个 Settings.cs 文件。 它为你要使用的配置定义了一个强类型
Settings
类。 将命名空间替换为项目的名称。namespace TestAppConfig { public class Settings { public string BackgroundColor { get; set; } public long FontSize { get; set; } public string FontColor { get; set; } public string Message { get; set; } } }
将配置中的
TestApp:Settings
节绑定到Settings
对象。使用以下代码更新 Program.cs,并在该文件的开头添加
TestAppConfig
命名空间。using TestAppConfig; // Existing code in Program.cs // ... ... builder.Services.AddRazorPages(); // Bind configuration "TestApp:Settings" section to the Settings object builder.Services.Configure<Settings>(builder.Configuration.GetSection("TestApp:Settings")); var app = builder.Build(); // The rest of existing code in program.cs // ... ...
打开页面目录中的 Index.cshtml.cs,并使用以下代码更新
IndexModel
类。 在文件开头添加using Microsoft.Extensions.Options
命名空间(如果尚不存在)。public class IndexModel : PageModel { private readonly ILogger<IndexModel> _logger; public Settings Settings { get; } public IndexModel(IOptionsSnapshot<Settings> options, ILogger<IndexModel> logger) { Settings = options.Value; _logger = logger; } }
打开页面目录中的 Index.cshtml,并使用以下代码更新内容。
@page @model IndexModel @{ ViewData["Title"] = "Home page"; } <style> body { background-color: @Model.Settings.BackgroundColor; } h1 { color: @Model.Settings.FontColor; font-size: @(Model.Settings.FontSize)px; } </style> <h1>@Model.Settings.Message</h1>
在本地生成并运行应用
若要使用 .NET CLI 生成应用,请导航到项目的根目录。 在命令行界面中运行以下命令:
dotnet build
生成成功完成后,请运行以下命令以在本地运行 Web 应用:
dotnet run
打开浏览器,导航到应用程序正在侦听的 URL(命令输出中指定的)。 应类似于
https://localhost:5001
。网页将如下所示:
清理资源
如果不想继续使用本文中创建的资源,请删除此处创建的资源组以避免产生费用。
重要
删除资源组的操作不可逆。 将永久删除资源组以及其中的所有资源。 请确保不要意外删除错误的资源组或资源。 如果在包含要保留的其他资源的资源组中创建了本文的资源,请从相应的窗格中单独删除每个资源,而不是删除该资源组。
- 登录到 Azure 门户,然后选择“资源组”。
- 在“按名称筛选”框中,输入资源组的名称。
- 在结果列表中,选择资源组名称以查看概述。
- 选择“删除资源组”。
- 系统会要求确认是否删除资源组。 重新键入资源组的名称进行确认,然后选择“删除” 。
片刻之后,将会删除该资源组及其所有资源。
后续步骤
在本快速入门中,请执行以下操作:
- 预配新的应用程序配置存储区。
- 使用应用程序配置提供程序库连接到你的应用程序配置存储区。
- 使用配置提供程序库读取应用程序配置存储区的键值。
- 使用在应用程序配置存储区中配置的设置显示网页。
若要了解如何配置 ASP.NET Core Web 应用以动态刷新配置设置,请继续学习下一个教程。