Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве вы создадите флаг компонента в конфигурации приложений Azure и используйте его для динамического управления доступностью новой веб-страницы в приложении Aspire без перезапуска или повторного развертывания.
Поддержка управления функциями расширяет функцию динамической конфигурации в Конфигурация приложений. Пример в этом кратком руководстве основан на приложении Aspire, представленном в руководстве по динамической конфигурации. Прежде чем продолжить, завершите краткое руководство и учебник по предварительному созданию приложения Aspire с динамической конфигурацией.
Предпосылки
Следуйте документам, чтобы создать решение Aspire с динамической конфигурацией.
- Краткое руководство: создание решения Aspire с помощью App Configuration
- Руководство. Использование динамической конфигурации в приложении Aspire
Создание флага компонента
Добавьте флаг компонента с именем Beta в хранилище конфигурации приложений (созданное на этапах предварительных требований ) и оставьте метку и описание со значениями по умолчанию. Дополнительные сведения о добавлении флагов компонентов в хранилище с помощью портал Azure или интерфейса командной строки см. в разделе "Создание флага функции".
Добавьте следующее ключевое значение через пользовательский интерфейс эмулятора конфигурации приложений.
| Key | Тип контента | Ценность |
|---|---|---|
| .appconfig.featureflag/Beta | application/vnd.microsoft.appconfig.ff+json; charset=utf-8 | {"id":"Beta","enabled":false} |
Флаги функций — это специальные ключевые значения, определяющие флаги компонентов Майкрософт. Поставщики конфигурации определяют флаг функции по определенному типу контента и префиксу ключа. Значение флага фичи — это объект JSON, который следует Microsoft Feature Flag schema.
- Тип контента флага компонента:
application/vnd.microsoft.appconfig.ff+json;charset=utf-8 - Префикс ключа флага компонента:
.appconfig.featureflag/
Использование флага компонента
Перейдите в
Webкаталог проекта (созданный на этапах предварительных требований ). Выполните следующую команду, чтобы добавитьMicrosoft.FeatureManagement.AspNetCoreпакет Nuget.dotnet add package Microsoft.FeatureManagement.AspNetCoreОткройте Program.cs и добавьте вызов
UseFeatureFlagsметода внутриAddAzureAppConfigurationвызова. Вы можете подключиться к конфигурации приложения, используя либо Microsoft Entra ID (рекомендуется), либо строку подключения. Следующий фрагмент кода демонстрирует использование Microsoft Entra ID.builder.AddAzureAppConfiguration( "appconfiguration", configureOptions: options => { // Load all keys that start with `TestApp:` and have no label. options.Select("TestApp:*", LabelFilter.Null); // Reload configuration if any key-values have changed. options.ConfigureRefresh(refreshOptions => refreshOptions.RegisterAll()); // Load all feature flags with no label options.UseFeatureFlags(); });Подсказка
Если параметр не передается методу
UseFeatureFlags, он загружает все флаги функций без меток в хранилище конфигурации приложений. Интервал обновления по умолчанию флагов компонентов составляет 30 секунд. Это поведение можно настроить с помощьюFeatureFlagOptionsпараметра. Например, следующий фрагмент кода загружает только флаги функций, начинающиеся с TestApp: в имениключа и разработки меток. Код также изменяет время обновления на 5 минут. Обратите внимание, что это время интервала обновления отличается от того, что для регулярных значений ключей.options.UseFeatureFlags(featureFlagOptions => { featureFlagOptions.Select("TestApp:*", "dev"); featureFlagOptions.CacheExpirationInterval = TimeSpan.FromMinutes(5); });Добавьте управление функциями в коллекцию служб приложения путем вызова
AddFeatureManagement.Обновите Program.cs с помощью следующего кода.
// Existing code in Program.cs // ... ... // Add Azure App Configuration middleware to the container of services. builder.Services.AddAzureAppConfiguration(); // Add feature management to the container of services. builder.Services.AddFeatureManagement(); var app = builder.Build(); // The rest of existing code in program.cs // ... ...Добавьте
using Microsoft.FeatureManagement;в начало файла, если он отсутствует.Добавьте новую страницу Razor с именем Beta.razor в каталоге Components/Pages .
@page "/beta" @inject IFeatureManager FeatureManager @if (isBetaEnabled) { <h1>This is the beta website.</h1> } else { <h1>Not found.</h1> } @code { private bool isBetaEnabled; protected override async Task OnInitializedAsync() { isBetaEnabled = await FeatureManager.IsEnabledAsync("Beta"); } }Откройте _Imports.razor и импортируйте пространство имен управления функциями.
@using Microsoft.FeatureManagementОткройте NavMenu.razor в каталоге Components/Layout .
Вставьте
IVariantFeatureManagerв начало файла.@inject IVariantFeatureManager FeatureManager <div class="top-row ps-3 navbar navbar-dark"> <div class="container-fluid"> <a class="navbar-brand" href="">AspireApp</a> </div> </div>Добавьте следующий код.
// Existing code // ... ... <div class="nav-scrollable" onclick="document.querySelector('.navbar-toggler').click()"> <nav class="nav flex-column"> // Existing code // ... ... @if (isBetaEnabled) { <div class="nav-item px-3"> <NavLink class="nav-link" href="beta"> <span class="bi bi-list-nested" aria-hidden="true"></span> Beta </NavLink> </div> } </nav> </div> @code { private bool isBetaEnabled; protected override async Task OnInitializedAsync() { isBetaEnabled = await FeatureManager.IsEnabledAsync("Beta"); } }
Локальный запуск приложения
Запустите проект
AppHost. Перейдите на панель мониторинга Aspire и откройте веб-приложение.На портале Azure перейдите к диспетчеру компонентов магазина конфигурации приложений и найдите флаг бета-функции . Включите флаг, выбрав флажок в разделе "Включено".
Обновите страницу несколько раз. После прохождения интервала обновления страница будет отображаться с обновленным содержимым.
Нажмите кнопку "Бета-версия ". Он приведет вас на бета-страницу, которую вы динамически активировали.
Локальный запуск приложения
Запустите проект
AppHost. Перейдите на панель мониторинга Aspire и откройте веб-приложение.Перейдите в эмулятор, измените значение флага компонента, чтобы включить его.
Key Ценность appconfig.featureflag/Beta {"id":"Beta","enabled":true} Обновите страницу несколько раз. После прохождения интервала обновления страница будет отображаться с обновленным содержимым.
Нажмите кнопку "Бета-версия ". Это приведет вас к бета-странице, которую вы активировали динамически.
Дальнейшие шаги
В этом кратком руководстве вы добавили возможность управления функциями в приложение Aspire в дополнение к динамической конфигурации. Библиотека Microsoft.FeatureManagement.AspNetCore обеспечивает интеграцию с приложениями ASP.NET Core, включая управление функциями в действиях контроллера MVC, Razor Pages, представлениях, маршрутах и middleware. Для полного запуска функции библиотеки управления функциями .NET перейдите к следующему документу.
Хотя флаг компонента позволяет активировать или деактивировать функции в приложении, вы можете настроить флаг функции на основе логики приложения. Фильтры функций позволяют условно включить флаг компонента. Дополнительные сведения см. в следующем руководстве.
Конфигурация приложений Azure предлагает встроенные фильтры функций, позволяющие активировать флаг функции только в течение определенного периода или для определенной целевой аудитории вашего приложения. Дополнительные сведения см. в следующем руководстве.
Чтобы включить возможности управления функциями для других типов приложений, перейдите к следующим руководствам.
Дополнительные сведения об управлении флагами функций в Конфигурация приложений Azure см. в следующем руководстве.