Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве показано, как включить динамические обновления конфигурации в решении Aspire. Он основан на веб-приложении, представленном в кратком руководстве. Приложение будет использовать библиотеку поставщика конфигурации приложений для его встроенных возможностей кэширования конфигурации и обновления. Прежде чем продолжить, сначала завершите создание решения Aspire с помощью конфигурации приложений Azure .
В этом руководстве вы узнаете, как:
- Настройте приложение для обновления конфигурации в ответ на изменения в магазине конфигурации приложений.
- Вставьте последнюю конфигурацию в приложение.
Предпосылки
Завершите настройку: Создайте решение Aspire с Azure App Configuration.
Повторная загрузка данных из App Configuration
Перейдите в
Webкаталог проекта (созданный на этапах предварительных требований ). Выполните следующую команду, чтобы добавитьMicrosoft.Azure.AppConfiguration.AspNetCoreпакет Nuget.dotnet add package Microsoft.Azure.AppConfiguration.AspNetCoreОткройте AppHost.cs и обновите метод, который вы добавили во время краткого руководства.
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 selected key-values have changed. options.ConfigureRefresh(refreshOptions => refreshOptions.RegisterAll()); });Метод
Selectиспользуется для загрузки всех значений ключей, имя ключа которых начинается с TestApp: и не имеет метки. Метод можно вызыватьSelectнесколько раз для загрузки конфигураций с различными префиксами или метками. Если вы предоставляете общий доступ к одному магазину конфигурации приложений с несколькими приложениями, этот подход помогает загрузить конфигурацию только для текущего приложения, а не загружать все из магазина.Внутри метода
ConfigureRefreshвы вызываете методRegisterAll, чтобы указать поставщику App Configuration перезагрузить всю конфигурацию при обнаружении изменений в любом из выбранных ключевых значений (начиная с TestApp: и без ярлыка). Дополнительные сведения об изменениях конфигурации мониторинга см. в рекомендациях по обновлению конфигурации.Добавьте ПО промежуточного слоя конфигурации приложений Azure в коллекцию служб приложения.
Обновите Program.cs с помощью следующего кода.
// Existing code in Program.cs // ... ... // Add Azure App Configuration middleware to the container of services. builder.Services.AddAzureAppConfiguration(); var app = builder.Build(); // The rest of existing code in program.cs // ... ...Вызовите метод
UseAzureAppConfiguration. Это позволяет вашему приложению использовать промежуточное программное обеспечение для конфигурирования приложения, чтобы автоматически обновлять конфигурацию.Обновите Program.cs с помощью следующего кода.
// Existing code in Program.cs // ... ... var app = builder.Build(); if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Error"); app.UseHsts(); } // Use Azure App Configuration middleware for dynamic configuration refresh. app.UseAzureAppConfiguration(); // The rest of existing code in program.cs // ... ...
Обновление конфигурации на основе запросов
Обновление конфигурации активируется входящими запросами к веб-приложению. Обновление не будет происходит, если ваше приложение неактивно. Когда ваше приложение активно, промежуточное ПО конфигурации приложения отслеживает все ключи, зарегистрированные на обновление в вызове ConfigureRefresh. ПО промежуточного слоя активируется при каждом входящем запросе к приложению. Однако посредник отправит запросы для проверки значения в App Configuration только после истечения установленного интервала обновления.
- Если запрос на настройку приложений для обнаружения изменений завершается сбоем, приложение продолжит использовать кэшированную конфигурацию. Новые попытки проверить наличие изменений будут периодически выполняться при наличии новых входящих запросов к приложению.
- Обновление конфигурации выполняется асинхронно при обработке входящих запросов приложения. Он не будет блокировать или замедлять входящий запрос, который активировал обновление. Запрос, активировав обновление, может не получить обновленные значения конфигурации, но последующие запросы получат новые значения конфигурации.
- Чтобы гарантировать активацию промежуточного ПО, вызовите метод
app.UseAzureAppConfiguration()как можно раньше в вашем конвейере обработки запросов, так, чтобы другое промежуточное ПО не пропустило его в вашем приложении.
Локальный запуск приложения
Запустите проект
AppHost. Перейдите на панель мониторинга Aspire и откройте веб-приложение.На портале Azure перейдите в обозреватель конфигураций хранилища Конфигурации приложений и обновите значение следующего ключа.
Key Ценность TestApp:Settings:Message Привет из Azure App Configuration - обновлено! Обновите браузер несколько раз. Когда интервал обновления истекает через 30 секунд, страница отображается с обновленным содержимым.
Перейдите на панель мониторинга Aspire и откройте структурированные журналы. Вы увидите, что
webfrontendресурс содержит журнал с сообщением "Конфигурация перезагрузилась".
Локальный запуск приложения
Запустите проект
AppHost. Перейдите на панель мониторинга Aspire и откройте веб-приложение.Перейдите в пользовательский интерфейс эмулятора, измените значение следующего ключа.
Key Ценность TestApp:Settings:Message Привет из Azure App Configuration - обновлено! Обновите браузер несколько раз. Когда интервал обновления истекает через 30 секунд, страница отображается с обновленным содержимым.
Перейдите на панель мониторинга Aspire и откройте структурированные журналы. Вы увидите, что
webfrontendресурс содержит журнал с сообщением "Конфигурация перезагрузилась".
Дальнейшие шаги
В этом руководстве вы включили приложение Aspire для динамического обновления параметров конфигурации из конфигурации приложений. Чтобы узнать, как добавить флаг функции в приложение Aspire, перейдите к следующему руководству.