Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym szybkim starcie tworzysz flagę funkcji w Azure App Configuration i używasz jej do dynamicznego sterowania aplikacją Python, tworząc kompleksową implementację zarządzania funkcjami.
Wsparcie dla zarządzania funkcjami rozszerza dynamiczną konfigurację w Konfiguracji aplikacji. Przykłady w tym przewodniku Szybki start bazują na aplikacji w języku Python przedstawionej w samouczku dotyczącym konfiguracji dynamicznej. Zanim przejdziesz dalej, ukończ szybki start i samouczek tworzenia aplikacji Python z konfiguracją dynamiczną.
Biblioteka zarządzania funkcjami nie zależy od żadnych bibliotek Azure. Integruje się z konfiguracją aplikacji za pośrednictwem dostawcy konfiguracji Python.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz je bezpłatnie.
- Magazyn usługi App Configuration, jak pokazano w samouczku dotyczącym tworzenia magazynu konfiguracji aplikacji.
- 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 portalu Azure lub interfejsu wiersza polecenia (CLI), zobacz Tworzenie flagi funkcji. Na tym etapie pole wyboru 'Włącz funkcję' powinno być pozostawione niezaznaczone.
Aplikacje konsolowe
Zainstaluj zarządzanie funkcjami przy użyciu
pip installpolecenia .pip install featuremanagementUtwórz nowy plik w języku Python o nazwie
app.pyi 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. Użytkownik musi mieć co najmniej rolę App Configuration Data Reader, aby uzyskać dostęp do magazynu App Configuration; więcej informacji znajduje się w sekcji Role usługi App Configuration.
Ustaw zmienną środowiskową o nazwie APP_CONFIGURATION_ENDPOINT i przypisz jej adres punktu końcowego magazynu 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 "<AppConfigurationEndpoint>"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.pyW 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 30 s, czyli po upływie okresu odświeżania dla dostawcy, aplikacja wyświetli następujące informacje:
Beta is True
Aplikacje sieci Web
Poniższy przykład pokazuje, jak zaktualizować istniejącą aplikację internetową przy użyciu usługi Azure App Configuration z funkcją dynamicznego odświeżania tak, aby korzystała również z 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. Zanim przejdziesz dalej, upewnij się, że flaga funkcji Beta jest włączona w magazynie konfiguracji aplikacji.
W app.py skonfiguruj metodę ładowania usługi Azure App Configuration tak, aby dodatkowo ładowała flagi funkcji, a także włączała ich odświeżanie.
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ć działanie flagi funkcji: na stronie pojawi się komunikat Beta is enabled, 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ą wywoływane, można przeprowadzić sprawdzenie odświeżenia, aby mieć pewność, że używane są najnowsze wartości konfiguracji. Sprawdzenie może zakończyć się natychmiast, jeśli interwał odświeżania jeszcze nie upłynął 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 przez przypadek niewłaściwej grupy zasobów lub 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.
- Zostaniesz poproszony 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 utworzysz nowy magazyn App Configuration i użyjesz go do zarządzania funkcjami w aplikacji w języku Python przy użyciu biblioteki Feature Management library.
- Dowiedz się więcej o zarządzaniu funkcjami.
- Zarządzaj flagami funkcji.