Szybki start: dodawanie flag funkcji do aplikacji w języku Python
W tym przewodniku Szybki start utworzysz flagę funkcji w aplikacja systemu Azure Configuration i użyjesz jej do dynamicznego sterowania aplikacjami języka Python w celu utworzenia kompleksowej implementacji zarządzania funkcjami.
Obsługa zarządzania funkcjami rozszerza funkcję konfiguracji dynamicznej w usłudze App Configuration. Te przykłady w przewodniku Szybki start opierają się na aplikacji języka Python wprowadzonej w samouczku dotyczącym konfiguracji dynamicznej. Przed kontynuowaniem ukończ przewodnik Szybki start i samouczek , aby najpierw utworzyć aplikacje języka Python z konfiguracją dynamiczną.
Ta biblioteka nie ma zależności od żadnych bibliotek platformy Azure. Bezproblemowo integrują się z usługą App Configuration za pośrednictwem dostawcy konfiguracji języka Python.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz je bezpłatnie.
- Magazyn usługi App Configuration. Utwórz magazyn.
- Python 3.8 lub nowszy — aby uzyskać informacje na temat konfigurowania języka Python w systemie Windows, zobacz dokumentację języka Python w systemie Windows. W przeciwnym razie zobacz pliki do pobrania języka Python.
- azure-appconfiguration-provider library 1.2.0 lub nowsza.
Dodawanie flagi funkcji
Dodaj flagę funkcji o nazwie Beta do sklepu App Configuration i pozostaw pole Etykieta i Opis z ich wartościami domyślnymi. Aby uzyskać więcej informacji na temat dodawania flag funkcji do magazynu przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia, przejdź do tematu Tworzenie flagi funkcji. Na tym etapie znacznik wyboru flagi włącz funkcję powinien być niezaznaczone.
Aplikacje konsolowe
Zainstaluj zarządzanie funkcjami przy użyciu
pip install
polecenia .pip install featuremanagement
Utwórz nowy plik w języku Python o nazwie
app.py
i dodaj następujący kod: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"))
Po uruchomieniu aplikacji zostanie otwarte okno przeglądarki w celu uwierzytelnienia użytkownika. Aby uzyskać więcej informacji, użytkownik musi mieć co najmniej App Configuration Data Reader
rolę dostępu do magazynu App Configuration. Aby uzyskać więcej informacji, zobacz Role usługi App Configuration.
Ustaw zmienną środowiskową o nazwie APP_CONFIGURATION_ENDPOINT i ustaw ją na punkt końcowy w magazynie usługi App Configuration. W wierszu polecenia uruchom następujące polecenie i uruchom ponownie wiersz polecenia, aby umożliwić wprowadzenie zmiany:
Aby skompilować i uruchomić aplikację lokalnie przy użyciu wiersza polecenia systemu Windows, uruchom następujące polecenie:
setx APP_CONFIGURATION_ENDPOINT "<endpoint-of-your-app-configuration-store>"
Uruchom ponownie wiersz polecenia, aby zezwolić na wprowadzenie zmiany. Zweryfikuj poprawność ustawienia, drukując wartość zmiennej środowiskowej.
Uruchom aplikację w języku Python.
python app.py
W portalu konfiguracji aplikacji wybierz pozycję Menedżer funkcji i zmień stan flagi funkcji beta na Włączone, używając przełącznika w kolumnie Włączone .
Klucz Stan Beta Włączone Po około 30s, czyli interwał odświeżania dostawcy, aplikacja wyświetli następujące elementy:
Beta is True
Aplikacje sieci Web
W poniższym przykładzie pokazano, jak zaktualizować istniejącą aplikację internetową przy użyciu aplikacja systemu Azure Configuration z odświeżaniem dynamicznym, aby również używać flag funkcji. Zobacz Konfiguracja dynamiczna języka Python, aby uzyskać bardziej szczegółowy przykład użycia odświeżania dynamicznego dla wartości konfiguracji. Przed kontynuowaniem upewnij się, że w magazynie App Configuration jest włączona flaga funkcji beta.
W app.py
programie skonfiguruj metodę ładowania aplikacja systemu Azure Configuration, aby dodatkowo załadować flagi funkcji, a także włączyć odświeżanie flag funkcji.
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)
Zaktualizuj również trasy, aby sprawdzić zaktualizowane flagi funkcji.
@app.route("/")
def index():
...
context["message"] = azure_app_config.get("message")
context["beta"] = feature_manager.is_enabled("Beta")
...
Zaktualizuj szablon index.html
, aby używał nowych flag funkcji.
...
<body>
<main>
<div>
<h1>{{message}}</h1>
{% if beta %}
<h2>Beta is enabled</h2>
{% endif %}
</div>
</main>
</body>
Po zaktualizowaniu i uruchomieniu aplikacji możesz zobaczyć flagę funkcji w akcji, gdzie Beta is enabled
na stronie pojawi się komunikat, ale tylko wtedy, gdy flaga funkcji jest włączona w magazynie App Configuration.
Pełny przykładowy projekt można znaleźć tutaj.
Za każdym razem, gdy te punkty końcowe są wyzwalane, można sprawdzić odświeżanie, aby upewnić się, że są używane najnowsze wartości konfiguracji. Sprawdzanie może być zwracane natychmiast, jeśli interwał odświeżania nie został jeszcze przekazany lub odświeżanie jest już w toku.
Po zakończeniu odświeżania wszystkie wartości są aktualizowane jednocześnie, więc konfiguracja jest zawsze spójna w obiekcie.
Czyszczenie zasobów
Jeśli nie chcesz nadal korzystać z zasobów utworzonych w tym artykule, usuń utworzoną tutaj grupę zasobów, aby uniknąć naliczania opłat.
Ważne
Usunięcie grupy zasobów jest nieodwracalne. Grupa zasobów i wszystkie zasoby w niej są trwale usuwane. Upewnij się, że nie usuniesz przypadkowo nieprawidłowej grupy zasobów ani zasobów. Jeśli zasoby dla tego artykułu zostały utworzone w grupie zasobów zawierającej inne zasoby, które chcesz zachować, usuń każdy zasób oddzielnie z odpowiedniego okienka zamiast usuwać grupę zasobów.
- Zaloguj się do witryny Azure Portal i wybierz pozycję Grupy zasobów.
- W polu Filtruj według nazwy wprowadź nazwę grupy zasobów.
- Na liście wyników wybierz nazwę grupy zasobów, aby wyświetlić przegląd.
- Wybierz pozycję Usuń grupę zasobów.
- Zobaczysz prośbę o potwierdzenie usunięcia grupy zasobów. Wprowadź nazwę grupy zasobów, aby potwierdzić, a następnie wybierz pozycję Usuń.
Po kilku chwilach grupa zasobów i wszystkie jej zasoby zostaną usunięte.
Następne kroki
W tym przewodniku Szybki start utworzono nowy magazyn usługi App Configuration i użyto go do zarządzania funkcjami w aplikacji w języku Python za pośrednictwem biblioteki zarządzania funkcjami.
- Dowiedz się więcej o zarządzaniu funkcjami.
- Zarządzanie flagami funkcji.