Freigeben über


Schnellstart: Hinzufügen von Featureflags zu einer Python-App

In dieser Schnellstartanleitung erstellen Sie ein Featureflag in Azure App Configuration und verwenden es, um Python-Apps dynamisch zu steuern und so eine End-to-End-Implementierung der Featureverwaltung zu erstellen.

Die Unterstützung für die Featureverwaltung stellt eine Erweiterung des Features für die dynamische Konfiguration in App Configuration dar. Die Beispiele im Schnellstart bauen auf der Python-App auf, die im Tutorial zur dynamischen Konfiguration vorgestellt wurden. Bevor Sie fortfahren, schließen Sie zunächst die Schnellstartanleitung und das Tutorial ab, um Python-Apps mit dynamischer Konfiguration zu erstellen.

Diese Bibliothek ist nicht von Azure-Bibliotheken abhängig. Über den Python-Konfigurationsanbieter lässt sie sich nahtlos in App Configuration integrieren.

Voraussetzungen

Hinzufügen eines Featureflags

Fügen Sie dem App Configuration-Speicher ein Featureflag mit dem Namen Beta hinzu, und behalten Sie die Standardwerte für Bezeichnung und Beschreibung bei. Weitere Informationen zum Hinzufügen von Featureflags zu einem Speicher mithilfe des Azure-Portals oder der CLI finden Sie unter Erstellen eines Featureflags. In dieser Phase sollte das Kontrollkästchen „Featureflag aktivieren“ deaktiviert sein.

Screenshot: Aktivieren eines Featureflags namens „Beta“.

Konsolenanwendungen

  1. Installieren Sie die Featureverwaltung mithilfe des Befehls pip install.

    pip install featuremanagement
    
  2. Erstellen Sie eine neue Python-Datei mit dem Namen app.py, und fügen Sie den folgenden Code hinzu:

    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"))
    

Beim Starten der Anwendung wird ein Browserfenster geöffnet, um den Benutzer zu authentifizieren. Der Benutzer muss mindestens über die Rolle „App Configuration Data Reader“ verfügen, um auf den App Configuration-Speicher zuzugreifen. Weitere Informationen finden Sie unter App Configuration-Rollen.

  1. Legen Sie eine Umgebungsvariable mit dem Namen APP_CONFIGURATION_ENDPOINT auf den Endpunkt für Ihren App Configuration-Speicher fest. Führen Sie an der Befehlszeile den folgenden Befehl aus, und starten Sie die Eingabeaufforderung neu, damit die Änderung wirksam wird:

    Um die App mithilfe der Windows-Eingabeaufforderung lokal zu erstellen und auszuführen, führen Sie den folgenden Befehl aus:

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

    Starten Sie die Eingabeaufforderung neu, damit die Änderung wirksam wird. Überprüfen Sie, ob sie richtig festgelegt wurde, indem Sie den Wert der Umgebungsvariablen ausdrucken.

  2. Führen Sie die Python-Anwendung aus.

    python app.py
    
  3. Wählen Sie im App Configuration-Portal den Feature-Manager aus. Ändern Sie den Status des Featureflags Beta in Ein, indem Sie den Umschalter in der Spalte Aktiviert verwenden.

    Schlüssel State
    Beta Ein
  4. Nach ungefähr 30 Sekunden, also dem Aktualisierungsintervall für den Anbieter, druckt die Anwendung Folgendes aus:

    Beta is True
    

Webanwendungen

Das folgende Beispiel zeigt, wie Sie eine vorhandene Webanwendung mithilfe von Azure App Configuration mit der dynamischen Aktualisierung aktualisieren, um auch Featureflags zu verwenden. Unter Dynamische Python-Konfiguration finden Sie ein detaillierteres Beispiel für die Verwendung der dynamischen Aktualisierung für Konfigurationswerte. Bevor Sie fortfahren, stellen Sie sicher, dass das Featureflag „Beta“ in Ihrem App Configuration-Speicher aktiviert ist.

Richten Sie in app.py die Lademethode von Azure App Configuration so ein, dass zusätzlich Featureflags geladen werden, und aktivieren Sie die Aktualisierung von Featureflags.

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)

Aktualisieren Sie außerdem Ihre Routen, damit nach aktualisierten Featureflags gesucht wird.

@app.route("/")
def index():
    ...
    context["message"] = azure_app_config.get("message")
    context["beta"] = feature_manager.is_enabled("Beta")
    ...

Aktualisieren Sie die Vorlage index.html, damit sie die neuen Featureflags verwendet.

...

<body>
  <main>
    <div>
      <h1>{{message}}</h1>
      {% if beta %}
      <h2>Beta is enabled</h2>
      {% endif %}
    </div>
  </main>
</body>

Nachdem Sie die Anwendung aktualisiert und ausgeführt haben, können Sie das Featureflag in Aktion sehen, wobei die Meldung „Beta is enabled“ auf der Seite angezeigt wird, aber nur, wenn das Featureflag im App Configuration-Speicher aktiviert ist.

Screenshot: Featureflag namens „Beta“ ist aktiviert.

Ein vollständiges Beispielprojekt finden Sie hier.

Wenn diese Endpunkte ausgelöst werden, kann eine Aktualisierungsprüfung durchgeführt werden, um sicherzustellen, dass die neuesten Konfigurationswerte verwendet werden. Die Überprüfung kann sofort Werte zurückgeben, wenn das Aktualisierungsintervall noch nicht verstrichen ist oder wenn bereits eine Aktualisierung ausgeführt wird.

Wenn eine Aktualisierung abgeschlossen ist, werden alle Werte gleichzeitig aktualisiert, sodass die Konfiguration innerhalb des Objekts immer konsistent ist.

Bereinigen von Ressourcen

Wenn Sie die in diesem Artikel erstellten Ressourcen nicht mehr verwenden möchten, löschen Sie die erstellte Ressourcengruppe, um Kosten zu vermeiden.

Wichtig

Das Löschen einer Ressourcengruppe kann nicht rückgängig gemacht werden. Die Ressourcengruppe und alle darin enthaltenen Ressourcen werden unwiderruflich gelöscht. Achten Sie daher darauf, dass Sie nicht versehentlich die falsche Ressourcengruppe oder die falschen Ressourcen löschen. Falls Sie die Ressourcen für diesen Artikel in einer Ressourcengruppe erstellt haben, die andere beizubehaltende Ressourcen enthält, löschen Sie die Ressourcen einzeln über den entsprechenden Bereich, statt die Ressourcengruppe zu löschen.

  1. Melden Sie sich beim Azure-Portal an, und klicken Sie auf Ressourcengruppen.
  2. Geben Sie im Feld Nach Name filtern den Namen Ihrer Ressourcengruppe ein.
  3. Wählen Sie in der Ergebnisliste den Ressourcengruppennamen aus, um eine Übersicht anzuzeigen.
  4. Wählen Sie die Option Ressourcengruppe löschen.
  5. Sie werden aufgefordert, das Löschen der Ressourcengruppe zu bestätigen. Geben Sie zur Bestätigung den Namen Ihrer Ressourcengruppe ein, und klicken Sie auf Löschen.

Daraufhin werden die Ressourcengruppe und alle darin enthaltenen Ressourcen gelöscht.

Nächste Schritte

In dieser Schnellstartanleitung haben Sie einen neuen App Configuration-Speicher erstellt und ihn zur Verwaltung von Features in einer Python-App über die Featureverwaltungsbibliothek verwendet.