Udostępnij za pośrednictwem


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 aplikacjachppython wprowadzonych 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

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.

Zrzut ekranu przedstawiający flagę włączania funkcji o nazwie Beta.

Aplikacje konsolowe

  1. Zainstaluj zarządzanie funkcjami przy użyciu pip install polecenia .

    pip install featuremanagement
    
  2. 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.

  1. 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.

  2. Uruchom aplikację w języku Python.

    python app.py
    
  3. 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
  4. 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.pyprogramie 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.

Zrzut ekranu przedstawiający włączoną wersję beta flagi funkcji.

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.

  1. Zaloguj się do witryny Azure Portal i wybierz pozycję Grupy zasobów.
  2. W polu Filtruj według nazwy wprowadź nazwę grupy zasobów.
  3. Na liście wyników wybierz nazwę grupy zasobów, aby wyświetlić przegląd.
  4. Wybierz pozycję Usuń grupę zasobów.
  5. 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.