Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Handbuch verwenden Sie einen Zielfilter, um ein Feature für Zielgruppen für Ihre Python-Anwendung bereitstellen zu können. Weitere Informationen zu diesem Zielfilter finden Sie unter Bereitstellen von Features für Zielgruppen.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Erstellen Sie ein kostenloses Konto.
- Ein App-Konfigurationsspeicher, wie in der Anleitung zum Erstellen eines Speichers gezeigt.
- Ein Betafunktion-Flag mit Zielgruppenfilter. Erstellen Sie das Featureflag.
- Python 3.8 oder höher.
Erstellen einer Webanwendung mit einem Featureflag
In diesem Abschnitt erstellen Sie eine Webanwendung, die das Betafeature-Flag verwendet, um den Zugriff auf die Betaversion einer Webseite zu steuern.
Einrichten eines Python Flask-Projekts
Erstellen Sie einen Ordner namens
targeting-filter-tutorialund navigieren Sie zu diesem.mkdir targeting-filter-tutorial cd targeting-filter-tutorialErstellen Sie eine virtuelle Umgebung, und aktivieren Sie sie.
# For Windows python -m venv venv venv\Scripts\activate # For macOS/Linux python -m venv venv source venv/bin/activateInstallieren Sie die folgenden Pakete.
pip install azure-appconfiguration-provider pip install azure-identity pip install featuremanagement pip install flaskErstellen Sie eine neue Datei mit dem Namen app.py , und fügen Sie den folgenden Code hinzu.
from flask import Flask app = Flask(__name__) if __name__ == "__main__": app.run(debug=True)
Herstellen einer Verbindung mit der Azure-App-Konfiguration
Aktualisieren Sie app.py , und fügen Sie den folgenden Code hinzu.
from flask import Flask import os from azure.identity import DefaultAzureCredential from azure.appconfiguration.provider import load from featuremanagement import FeatureManager app = Flask(__name__) # Get the App Configuration endpoint from environment variables app_config_endpoint = os.environ.get("AZURE_APPCONFIG_ENDPOINT") # Declare App Configuration and feature manager variables azure_app_config = None feature_manager = None def initialize_config(): global azure_app_config, feature_manager # Load feature flags from App Configuration azure_app_config = load( endpoint=app_config_endpoint, credential=DefaultAzureCredential(), feature_flag_enabled=True, feature_flag_refresh_enabled=True ) # Create a feature manager with the loaded configuration feature_manager = FeatureManager(azure_app_config) # Flask route before the request to refresh configuration @app.before_request def refresh_config(): if azure_app_config: azure_app_config.refresh() if __name__ == "__main__": # Initialize configuration before starting the app initialize_config() app.run(debug=True)Sie stellen eine Verbindung mit der Azure App-Konfiguration her, um Featurekennzeichnungen zu laden, die automatische Aktualisierung zu aktivieren und später ein
FeatureManagerObjekt für den Zugriff auf Featurekennzeichnungen zu erstellen. Derapp.before_requestDekorateur stellt sicher, dass die Konfiguration vor jeder Anforderung aktualisiert wird.
Verwenden des Featureflags
Fügen Sie der datei app.py vor der Hauptfunktion den folgenden Code hinzu, um einen Routenhandler für die Flask-Anwendung zu erstellen. Die Anwendung zeigt unterschiedliche Inhalte an, je nachdem, ob das Beta-Funktionsflag aktiviert ist.
@app.route("/")
def home():
is_beta_enabled = feature_manager.is_enabled("Beta")
title = "Home Page"
message = "Welcome."
if is_beta_enabled:
title = "Beta Page"
message = "This is a beta page."
return f"""
<!DOCTYPE html>
<html>
<head><title>{title}</title></head>
<body style="display: flex; justify-content: center; align-items: center; min-height: 100vh; margin: 0;">
<h1 style="text-align: center; font-size: 5rem;">{message}</h1>
</body>
</html>
"""
Aktivieren der Zielbestimmung für die Webanwendung
Ein Zielkontext ist erforderlich, wenn Features mit aktivierter Zielbestimmung ausgewertet werden. In Python müssen Sie ein TargetingContext Objekt erstellen und an die is_enabled Methode des Feature-Managers übergeben.
Aktualisieren Sie die app.py Datei, um die TargetingContext Klasse zu importieren und in der Startroute zu verwenden:
from flask import Flask, request
from featuremanagement import FeatureManager, TargetingContext
...
@app.route("/")
def home():
# Get targeting context from query parameters
user_id = request.args.get("userId", "")
groups_param = request.args.get("groups", "")
groups = groups_param.split(",") if groups_param else []
targeting_context = TargetingContext(user_id=user_id, groups=groups)
is_beta_enabled = feature_manager.is_enabled("Beta", targeting_context)
title = "Home Page"
message = "Welcome."
if is_beta_enabled:
title = "Beta Page"
message = "This is a beta page."
return f"""
<!DOCTYPE html>
<html>
<head><title>{title}</title></head>
<body style="display: flex; justify-content: center; align-items: center; min-height: 100vh; margin: 0;">
<h1 style="text-align: center; font-size: 5rem;">{message}</h1>
</body>
</html>
"""
if __name__ == "__main__":
# Initialize configuration before starting the app
initialize_config()
app.run(debug=True)
Zielfilter in Aktion
Legen Sie die Umgebungsvariable namens AZURE_APPCONFIG_ENDPOINT auf den Endpunkt Ihres App-Konfigurationsspeichers fest, der unter der Übersicht über Ihren Store im Azure-Portal zu finden ist.
Führen Sie bei Verwendung einer Windows-Eingabeaufforderung den folgenden Befehl aus, und starten Sie die Eingabeaufforderung neu, damit die Änderung wirksam wird:
setx AZURE_APPCONFIG_ENDPOINT "<AppConfigurationEndpoint>"Wenn Sie PowerShell verwenden, führen Sie den folgenden Befehl aus:
$Env:AZURE_APPCONFIG_ENDPOINT = "<AppConfigurationEndpoint>"Führen Sie bei Verwendung von macOS oder Linux den folgenden Befehl aus:
export AZURE_APPCONFIG_ENDPOINT='<AppConfigurationEndpoint>'Führen Sie die Anwendung aus.
python app.pyÖffnen Sie Ihren Browser, und navigieren Sie zu der Adresse, die in Ihrem Terminal angezeigt wird (standardmäßig). http://127.0.0.1:5000 Die Standardansicht der App sollte angezeigt werden.
Fügen Sie
userIdals Abfrageparameter in der URL hinzu, um die Benutzer-ID anzugeben. Besuchen Sielocalhost:5000/?userId=test@contoso.com. Sie sehen die Betaseite, weiltest@contoso.comals Zielbenutzer angegeben ist.
Besuchen Sie
localhost:5000/?userId=testuser@contoso.com. Die Betaseite kann nicht angezeigt werden, datestuser@contoso.comals ausgeschlossener Benutzer angegeben ist.
Nächste Schritte
Wenn Sie mehr über Featurefilter erfahren möchten, fahren Sie mit den folgenden Dokumenten fort.
Weitere Informationen zur Python Feature Management-Bibliothek finden Sie im folgenden Dokument.