Поделиться через


Руководство: Использование динамической конфигурации в приложении Azure Functions

В этом руководстве показано, как включить динамические обновления конфигурации в приложении "Функции Azure". Он развивает возможности приложения "Функции Azure", представленного в начальных руководствах. Прежде чем продолжить, сначала завершите создание приложения Функций Azure с помощью конфигурации приложений Azure .

В этом руководстве описано, как:

  • Настройте динамическое обновление конфигурации для приложения "Функции Azure".
  • Включите автоматическое обновление конфигурации с помощью промежуточного программного обеспечения для конфигурации приложений.
  • Используйте последнюю конфигурацию в вызовах функций, когда изменения происходят в хранилище конфигурации приложений.

Предпосылки

Повторная загрузка данных из App Configuration

Поставщик .NET конфигурации приложений Azure поддерживает кэширование и динамическое обновление параметров конфигурации на основе действий приложения. В этом разделе вы конфигурируете поставщика для динамического обновления настроек и включаете автоматическое обновление конфигурации с помощью промежуточного ПО для обновления конфигурации приложений Microsoft.Azure.AppConfiguration.Functions.Worker, при каждом выполнении функции.

Примечание.

Конфигурацию приложений Azure можно использовать с функциями Azure в изолированной рабочей модели или в модели внутрипроцессной. В этом руководстве в качестве примера используется изолированная рабочая модель. Полные примеры кода для обеих моделей можно найти в репозитории GitHub конфигурации приложений Azure.

  1. Откройте файл Program.cs и обновите вызов на AddAzureAppConfiguration, добавив метод ConfigureRefresh. Этот метод настраивает условия обновления параметров конфигурации, включая указание ключей для отслеживания и интервала между проверками обновления.

    // Connect to Azure App Configuration
    builder.Configuration.AddAzureAppConfiguration(options =>
    {
        Uri endpoint = new(Environment.GetEnvironmentVariable("AZURE_APPCONFIG_ENDPOINT") ?? 
            throw new InvalidOperationException("The environment variable 'AZURE_APPCONFIG_ENDPOINT' is not set or is empty."));
        options.Connect(endpoint, new DefaultAzureCredential())
               // Load all keys that start with `TestApp:` and have no label
               .Select("TestApp:*")
               // Reload configuration if any selected key-values have changed.
               // Use the default refresh interval of 30 seconds. It can be overridden via AzureAppConfigurationRefreshOptions.SetRefreshInterval.
               .ConfigureRefresh(refreshOptions =>
               {
                   refreshOptions.RegisterAll();
               });
    });
    

    Вы вызываете RegisterAll метод, чтобы указать поставщику конфигурации приложений перезагрузить всю конфигурацию при обнаружении изменения в любом из выбранных значений ключей (начиная с TestApp: и без метки). Дополнительные сведения об изменениях конфигурации мониторинга см. в рекомендациях по обновлению конфигурации.

    По умолчанию интервал обновления имеет значение 30 секунд. Этот интервал можно настроить, вызвав AzureAppConfigurationRefreshOptions.SetRefreshInterval метод.

  2. Обновите файл Program.cs, чтобы включить автоматическое обновление конфигурации при каждом выполнении функции, добавив промежуточное ПО для конфигурации приложений:

    // Connect to Azure App Configuration
    builder.Configuration.AddAzureAppConfiguration(options =>
    {
        // Omitted the code added in the previous step.
    });
    
    // Add Azure App Configuration middleware to the service collection.
    builder.Services.AddAzureAppConfiguration()
    
    // Use Azure App Configuration middleware for dynamic configuration refresh.
    builder.UseAzureAppConfiguration();
    
    builder.ConfigureFunctionsWebApplication();
    
    builder.Build().Run();
    

Локальное тестирование функции

  1. Установите переменную среды .

    Установите переменную среды с именем AZURE_APPCONFIG_ENDPOINT на значение конечной точки вашего хранилища конфигураций приложений, найденной в разделе Обзор вашего хранилища в портале Azure.

    Если вы используете командную строку Windows, выполните следующую команду и перезапустите командную строку, чтобы изменения вступили в силу:

    setx AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"
    

    Если вы используете PowerShell, выполните следующую команду:

    $Env:AZURE_APPCONFIG_ENDPOINT = "<endpoint-of-your-app-configuration-store>"
    

    Если вы используете macOS или Linux, выполните следующую команду:

    export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'
    
  2. Чтобы протестировать функцию, нажмите клавишу F5. При появлении запроса примите запрос из Visual Studio, чтобы скачать и установить средства Azure Functions Core (CLI ). Кроме того, возможно, вам понадобиться включить исключение брандмауэра, чтобы инструменты могли обрабатывать HTTP-запросы.

  3. Скопируйте URL-адрес функции из выходных данных среды выполнения Функций Azure.

    Краткое руководство по отладке функции в VS

  4. Вставьте URL-адрес HTTP-запроса в адресную строку браузера. На следующем рисунке показан ответ в браузере на локальный запрос GET, возвращаемый функцией.

    Быстрый старт. Запуск локальной функции

  5. Выберите хранилище конфигурации приложений на портале Azure и обновите значение следующего ключа в обозревателе конфигураций.

    Ключ Ценность
    TestApp:Settings:Message Данные из конфигурации приложений Azure — обновлены
  6. Обновите браузер несколько раз. После прохождения интервала обновления по умолчанию в 30 секунд на странице отображается обновленное значение, полученное из приложения "Функции Azure".

    Быстрый старт. Локальное обновление функции

Очистка ресурсов

Если вы не планируете в дальнейшем использовать ресурсы, созданные при работе с этой статьей, удалите созданную группу ресурсов, чтобы избежать расходов.

Это важно

Удаление группы ресурсов — процесс необратимый. Группа ресурсов и все содержащиеся в ней ресурсы удаляются без возможности восстановления. Будьте внимательны, чтобы случайно не удалить не те ресурсы или группу ресурсов. Если ресурсы для работы с этой статьей созданы в группе ресурсов, которая содержит другие нужные ресурсы, удалите каждый ресурс отдельно в соответствующей области ресурса, чтобы не удалять группу ресурсов.

  1. Войдите на портал Azure и выберитеГруппы ресурсов.
  2. Введите имя группы ресурсов в поле Фильтровать по имени.
  3. В списке результатов выберите имя группы ресурсов, чтобы просмотреть общие сведения.
  4. Выберите команду Удалить группу ресурсов.
  5. Подтвердите операцию удаления группы ресурсов. Введите имя группы ресурсов, которую необходимо удалить, и нажмите Удалить.

Через некоторое время группа ресурсов и все ее ресурсы будут удалены.

Дальнейшие действия

В этом руководстве вы включили приложение Функций Azure для динамического обновления параметров конфигурации из конфигурации приложений.

Чтобы узнать, как использовать флаги функций из конфигурации приложений Azure в приложении "Функции Azure", перейдите к следующему руководству.

Чтобы узнать, как использовать управляемое удостоверение Azure для упрощения доступа к конфигурации приложений, перейдите к следующему руководству.