Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом быстром старте вы создаёте флаг функции в Конфигурация приложений Azure и используете его для динамического управления Python-приложением, создавая сквозную реализацию управления функциями.
Поддержка управления функциями расширяет функцию динамической конфигурации в конфигурации приложений. Примеры в этом кратком руководстве основаны на Python-приложении, представленном в руководстве по динамической конфигурации. Прежде чем продолжить, пройдите быстрый старт и туториал по созданию приложений на Python с динамической конфигурацией.
Библиотека управления функциями не зависит от библиотек Azure. Он интегрируется с App Configuration через провайдера конфигурации Python.
Предварительные требования
- Учетная запись Azure с активной подпиской. Создайте ее бесплатно.
- Хранилище конфигурации приложений, как показано в руководстве по созданию хранилища.
- Python 3.8 или более поздняя версия — сведения о настройке Python в Windows см. в документации по Python в Windows; в противном случае см. страницу загрузки Python.
- библиотека azure-appconfiguration-provider версии 1.2.0 или более поздней.
Добавление флага компонента
Добавьте флаг компонента с именем Beta в хранилище Конфигурация приложений и оставьте метку и описание со значениями по умолчанию. Дополнительные сведения о том, как добавить флаги функций в хранилище с помощью портала Azure или интерфейса командной строки, см. в разделе Создание флага функции. На этом этапе флажок "Включить функцию" должен быть снят.
Консольные приложения
Установите компонент Feature Management с помощью команды
pip install.pip install featuremanagementСоздайте новый файл Python с именем
app.pyи добавьте следующий код:from featuremanagement import FeatureManager from azure.identity import InteractiveBrowserCredential from azure.appconfiguration.provider import load import os from time import sleep endpoint = os.environ["APP_CONFIGURATION_ENDPOINT"] # Connecting to Azure App Configuration using an endpoint # credential is used to authenticate the client, the InteractiveBrowserCredential is used for this sample. It will open a browser window to authenticate the user. For all credential options see [credential classes](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#credential-classes). # feature_flag_enabled makes it so that the provider will load feature flags from Azure App Configuration # feature_flag_refresh_enabled makes it so that the provider will refresh feature flags from Azure App Configuration, when the refresh operation is triggered config = load(endpoint=endpoint, credential=InteractiveBrowserCredential(), feature_flag_enabled=True, feature_flag_refresh_enabled=True) feature_manager = FeatureManager(config) # Is always false print("Beta is ", feature_manager.is_enabled("Beta")) while not feature_manager.is_enabled("Beta"): sleep(5) config.refresh() print("Beta is ", feature_manager.is_enabled("Beta"))
При запуске приложения откроется окно браузера для проверки подлинности пользователя. Пользователь должен иметь как минимум роль App Configuration Data Reader, чтобы получить доступ к хранилищу App Configuration; дополнительные сведения см. в разделе Роли App Configuration.
Задайте переменную среды с именем APP_CONFIGURATION_ENDPOINT и установите ее в конечную точку в хранилище Конфигурация приложений. В командной строке выполните следующую команду и перезапустите командную строку, чтобы изменения вступили в силу:
Чтобы выполнить сборку и запуск приложения локально с помощью командной строки Windows, выполните следующую команду:
setx APP_CONFIGURATION_ENDPOINT "<AppConfigurationEndpoint>"Перезапустите командную строку, чтобы изменение вступило в силу. Убедитесь, что он правильно задан, распечатав значение переменной среды.
Запустите приложение Python.
python app.pyНа портале Конфигурация приложений выберите диспетчер компонентов и измените состояние флага бета-функции на "Вкл." с помощью переключателя в столбце "Включено".
Ключ Штат Бета-версия Включено Примерно через 30 с — это интервал обновления провайдера — приложение выведет следующее:
Beta is True
Веб-приложения
В следующем примере показано, как обновить существующее веб-приложение, чтобы оно, используя Конфигурация приложений Azure с динамическим обновлением, также поддерживало флаги функций. См. Python Dynamic Configuration, где приведён более подробный пример использования динамического обновления значений конфигурации. Прежде чем продолжить, убедитесь, что в хранилище Конфигурация приложений включен флаг бета-функции.
В app.py настройте метод загрузки Конфигурация приложений Azure так, чтобы он дополнительно загружал флаги функций, а также включите обновление флагов функций.
from featuremanagement import FeatureManager
...
global azure_app_config, feature_manager
# Connecting to Azure App Configuration using an endpoint
# credential is used to authenticate the client, the InteractiveBrowserCredential is used for this sample. It will open a browser window to authenticate the user. For all credential options see [credential classes](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#credential-classes).
# feature_flag_enabled makes it so that the provider will load feature flags from Azure App Configuration
# feature_flag_refresh_enabled makes it so that the provider will refresh feature flags from Azure App Configuration, when the refresh operation is triggered
azure_app_config = load(endpoint=endpoint, credential=InteractiveBrowserCredential(),
refresh_on=[WatchKey("sentinel")],
on_refresh_success=on_refresh_success,
refresh_interval=10, # Default value is 30 seconds, shortened for this sample
feature_flag_enabled=True,
feature_flag_refresh_enabled=True,
)
feature_manager = FeatureManager(config)
Также обновите маршруты, чтобы проверить наличие обновленных флагов компонентов.
@app.route("/")
def index():
...
context["message"] = azure_app_config.get("message")
context["beta"] = feature_manager.is_enabled("Beta")
...
Обновите шаблон index.html , чтобы использовать новые флаги компонентов.
...
<body>
<main>
<div>
<h1>{{message}}</h1>
{% if beta %}
<h2>Beta is enabled</h2>
{% endif %}
</div>
</main>
</body>
После обновления и запуска приложения вы сможете увидеть флаг функции в действии: на странице появится сообщение Beta is enabled, но только если этот флаг функции включен в хранилище App Configuration.
Полный пример проекта можно найти здесь.
При активации этих конечных точек можно выполнить проверку обновления, чтобы обеспечить использование последних значений конфигурации. Проверка может вернуться немедленно, если интервал обновления еще не прошел или обновление уже выполняется.
После завершения обновления все значения обновляются одновременно, поэтому конфигурация всегда согласована в объекте.
Очистка ресурсов
Если вы не планируете в дальнейшем использовать ресурсы, созданные при работе с этой статьей, удалите созданную группу ресурсов, чтобы избежать расходов.
Внимание
Удаление группы ресурсов — процесс необратимый. Группа ресурсов и все содержащиеся в ней ресурсы удаляются без возможности восстановления. Будьте внимательны, чтобы случайно не удалить не те ресурсы или группу ресурсов. Если ресурсы для работы с этой статьей созданы в группе ресурсов, которая содержит другие нужные ресурсы, удалите каждый ресурс отдельно в соответствующей области ресурса, чтобы не удалять группу ресурсов.
- Войдите на портал Azure и выберитеГруппы ресурсов.
- Введите имя группы ресурсов в поле Фильтровать по имени.
- В списке результатов выберите имя группы ресурсов, чтобы просмотреть общие сведения.
- Выберите команду Удалить группу ресурсов.
- Подтвердите операцию удаления группы ресурсов. Введите имя группы ресурсов, которую необходимо удалить, и нажмите Удалить.
Через некоторое время группа ресурсов и все ее ресурсы будут удалены.
Следующие шаги
В этом кратком руководстве вы создали новое хранилище App Configuration и использовали его для управления функциями в приложении Python с помощью библиотеки Feature Management.
- Узнайте больше об управлении функциями.
- Управляйте флагами функций.