Краткое руководство. Создание приложения ASP.NET Core с помощью Конфигурация приложений Azure

В этом кратком руководстве вы будете использовать Конфигурация приложений Azure для внешнего хранения и управления параметрами приложения для приложения ASP.NET Core. ASP.NET Core создает один объект конфигурации на основе ключа с использованием параметров от одного или нескольких поставщиков конфигурации. Конфигурация приложений предоставляет библиотеку поставщика конфигурации .NET. Таким образом, вы можете использовать Конфигурация приложений в качестве дополнительного источника конфигурации для приложения. Если у вас есть существующее приложение, чтобы начать использовать Конфигурация приложений, вам потребуется лишь несколько небольших изменений в коде запуска приложения.

Необходимые компоненты

Совет

Azure Cloud Shell — это бесплатная интерактивная оболочка, с помощью которой можно выполнять инструкции командной строки, описанные в этой статье. В ней есть стандартные средства Azure, включая пакет SDK для .NET. Если вы вошли в подписку Azure, запустите Azure Cloud Shell на сайте shell.azure.com. Дополнительные сведения об Azure Cloud Shell см. в нашей документации

Добавление ключевых значений

Добавьте следующие ключевые значения в хранилище Конфигурация приложений и оставьте метку и тип контента со значениями по умолчанию. Дополнительные сведения о добавлении значений ключей в хранилище с помощью портал Azure или ИНТЕРФЕЙСА командной строки см. в разделе "Создание значения ключа".

Ключ Значение
TestApp:Параметры:BackgroundColor white
TestApp:Параметры:FontColor black
TestApp:Параметры:FontSize 24
TestApp:Параметры:Message Данные из Конфигурация приложений Azure

Создание веб-приложения ASP.NET Core

Используйте интерфейс командной строки .NET (CLI), чтобы создать проект веб-приложения ASP.NET Core. Azure Cloud Shell предоставляет эти инструменты. Они также доступны на платформах Windows, macOS и Linux.

Выполните следующую команду, чтобы создать веб-приложение ASP.NET Core в новой папке TestAppConfig :

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

Подключение к хранилищу Конфигурации приложений

  1. Перейдите в каталог TestAppConfig проекта и выполните следующую команду, чтобы добавить ссылку на пакет NuGet Microsoft.Azure.AppConfiguration.AspNetCore :

    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>"
    

    Совет

    Некоторые оболочки усекают строки подключения, которые не заключены в кавычки. Убедитесь, что вывод команды dotnet user-secrets list отображает полную строку подключения. В противном случае повторно выполните команду, заключив строку подключения в кавычки.

    Диспетчер секретов хранит секрет за пределами дерева проекта, что помогает предотвратить случайный общий доступ к секретам в исходном коде. Он используется только для локального тестирования веб-приложения. При развертывании приложения в Azure, например Служба приложений, используйте строки Подключение ion, параметры приложения или переменные среды для хранения строка подключения. Кроме того, чтобы избежать строка подключения все вместе, вы можете подключиться к Конфигурация приложений с помощью управляемых удостоверений или других удостоверений Microsoft Entra.

  3. Откройте Program.cs и добавьте Конфигурация приложений Azure в качестве дополнительного AddAzureAppConfiguration источника конфигурации путем вызова метода.

    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. Добавьте файл Параметры.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 в каталоге Pages и обновите 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 в каталоге Pages и обновите содержимое следующим кодом.

    @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, перейдите в корневой каталог проекта. Выполните приведенную ниже команду в командной оболочке.

    dotnet build
    
  2. Когда создание завершится, запустите веб-приложение локально с помощью следующей команды:

    dotnet run
    
  3. Выходные данные dotnet run команды содержат два URL-адреса. Откройте браузер и перейдите к одному из этих URL-адресов, чтобы получить доступ к приложению. Например: https://localhost:5001.

    Если вы работаете в Azure Cloud Shell, нажмите кнопку Просмотр в Интернете, а затем — Настроить. При появлении запроса на настройку порта для предварительной версии введите 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 для динамического обновления параметров конфигурации, перейдите к следующему руководству.