你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:使用 Azure 应用配置创建 ASP.NET Core 应用

本快速入门将使用 Azure 应用程序配置来外部化 ASP.NET Core 应用的应用程序设置的存储和管理。 ASP.NET Core 使用来自一个或多个配置提供程序的设置生成单个基于键值的配置对象。 应用程序配置提供了一个 .NET 配置提供程序库。 因此,可以使用应用程序配置作为应用的额外配置源。 如果你有一个现有的应用,要开始使用应用程序配置,你只需要对你的应用启动代码进行一些小更改。

先决条件

提示

Azure Cloud Shell 是免费的交互式 shell,可以使用它运行本文中的命令行指令。 它预安装了常用的 Azure 工具,其中包括 .NET SDK。 如果你已登录到 Azure 订阅,请从 shell.azure.com 启动 Azure Cloud Shell。 若要详细了解 Azure Cloud Shell,请阅读我们的文档

添加键值

将以下键值添加到应用程序配置存储区,并让“标签”和“内容类型”保留默认值。 有关如何使用 Azure 门户或 CLI 将键值添加到存储区的详细信息,请转到创建键值

密钥
TestApp:Settings:BackgroundColor white
TestApp:Settings:FontColor black
TestApp:Settings:FontSize 24
TestApp:Settings:Message Azure 应用配置的数据

创建一个 ASP.NET Core Web 应用

使用 .NET 命令行接口 (CLI) 创建新的 ASP.NET Core Web 应用项目。 Azure Cloud Shell 提供了这些工具。 它们还可在 Windows、macOS 和 Linux 平台上使用。

运行以下命令,在新的 TestAppConfig 文件夹中创建 ASP.NET Core Web 应用:

dotnet new webapp --output TestAppConfig --framework net6.0

连接到应用程序配置存储区

  1. 导航到项目的目录 TestAppConfig,并运行以下命令来添加 Microsoft.Azure.AppConfiguration.AspNetCore NuGet 包引用:

    dotnet add package Microsoft.Azure.AppConfiguration.AspNetCore
    
  2. 运行以下命令。 该命令使用机密管理器来存储名为 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 标识连接到应用程序配置。

  3. 打开 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 参考

从应用程序配置存储区读取数据

在此示例中,你将使用你在应用程序配置存储区中配置的设置来更新网页以显示其内容。

  1. 在项目目录的根目录下添加一个 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; }
        }
    }
    
  2. 将配置中的 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
    // ... ...
    
  3. 打开页面目录中的 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;
        }
    }
    
  4. 打开页面目录中的 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>
    

在本地生成并运行应用

  1. 若要使用 .NET CLI 生成应用,请导航到项目的根目录。 在命令行界面中运行以下命令:

    dotnet build
    
  2. 生成成功完成后,请运行以下命令以在本地运行 Web 应用:

    dotnet run
    
  3. dotnet run 命令的输出包含两个 URL。 打开浏览器并导航到其中任一 URL 来访问你的应用程序。 例如:https://localhost:5001

    如果要在 Azure Cloud Shell 中操作,请依次选择“Web 预览”按钮和“配置” 。 系统提示配置预览端口时,请输入“5000”,然后选择“打开并浏览”。

    Screenshot of Azure Cloud Shell. Locate Web Preview.

    网页如下所示:Screenshot of the browser.Launching quickstart app locally.

清理资源

如果不想继续使用本文中创建的资源,请删除此处创建的资源组以避免产生费用。

重要

删除资源组的操作不可逆。 将永久删除资源组以及其中的所有资源。 请确保不要意外删除错误的资源组或资源。 如果在包含要保留的其他资源的资源组中创建了本文的资源,请从相应的窗格中单独删除每个资源,而不是删除该资源组。

  1. 登录到 Azure 门户,然后选择“资源组”。
  2. 在“按名称筛选”框中,输入资源组的名称
  3. 在结果列表中,选择资源组名称以查看概述。
  4. 选择“删除资源组”。
  5. 系统会要求确认是否删除资源组。 重新键入资源组的名称进行确认,然后选择“删除” 。

片刻之后,将会删除该资源组及其所有资源。

后续步骤

在本快速入门中,请执行以下操作:

  • 预配新的应用程序配置存储区。
  • 使用应用程序配置提供程序库连接到你的应用程序配置存储区。
  • 使用配置提供程序库读取应用程序配置存储区的键值。
  • 使用在应用程序配置存储区中配置的设置显示网页。

若要了解如何配置 ASP.NET Core Web 应用以动态刷新配置设置,请继续学习下一个教程。