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.
Der Azure App Configuration-Anbieter für Python enthält integrierte Funktionen für Zwischenspeicherung und Aktualisierung. In diesem Tutorial wird gezeigt, wie Sie die dynamische Konfiguration in Python-Anwendungen aktivieren.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Erstellen Sie ein kostenloses Konto.
- Ein Azure App Configuration-Konfigurationsspeicher. Erstellen Sie einen Speicher.
- Python 3.8 oder höher. Informationen zur Einrichtung von Python unter Windows finden Sie in der Dokumentation zu Python on Windows.
Schlüsselwerte hinzufügen
Fügen Sie Ihrem Azure App Configuration-Konfigurationsspeicher das folgende Schlüssel-Wert-Paar hinzu. Weitere Informationen dazu, wie Sie einem Speicher mithilfe des Azure-Portal oder der CLI Schlüssel-Werte hinzufügen, finden Sie unter Erstellen eines Schlüssel-Werts.
| Schlüssel | Wert | Bezeichnung | Inhaltstyp |
|---|---|---|---|
| Nachricht | Hallo Welt! | Leer lassen | Leer lassen |
| sentinel | 1 | Leer lassen | Leer lassen |
Hinweis
Ein Sentinel-Schlüssel ist ein Schlüssel, den Sie aktualisieren, nachdem Sie die Änderung aller anderen Schlüssel abgeschlossen haben. Ihre App überwacht den Sentinel-Schlüssel. Wird eine Änderung erkannt, werden alle Konfigurationswerte von Ihrer App aktualisiert. Dieser Ansatz trägt dazu bei, die Konsistenz der Konfiguration in Ihrer App sicherzustellen, und verringert die Gesamtanzahl von Anforderungen, die an den Azure App Configuration-Speicher gesendet werden (verglichen mit der Überwachung aller Schlüssel auf Änderungen).
Konsolenanwendungen
Erstellen Sie eine neue Python-Datei mit dem Namen app.py, und fügen Sie den folgenden Code hinzu:
Sie verwenden die
DefaultAzureCredentialfür die Authentifizierung beim App Configuration-Speicher. Befolgen Sie die Anweisungen, um Ihre Anmeldeinformationen der Rolle App Configuration-Datenleser zuzuweisen. Achten Sie darauf, genügend Zeit einzuplanen, damit sich die Berechtigung propagieren kann, bevor Sie Ihre Anwendung ausführen.from azure.appconfiguration.provider import load, WatchKey from azure.identity import DefaultAzureCredential import os import time endpoint = os.environ.get("APPCONFIGURATION_ENDPOINT") # Connecting to Azure App Configuration using connection string # Setting up to refresh when the Sentinel key is changed. config = load( endpoint=endpoint, credential=DefaultAzureCredential(), refresh_on=[WatchKey("sentinel")], refresh_interval=10, # Default value is 30 seconds, shorted for this sample ) print("Update the `message` in your Azure App Configuration store using Azure portal or CLI.") print("First, update the `message` value, and then update the `sentinel` key value.") while (True): # Refreshing the configuration setting config.refresh() # Current value of message print(config["message"]) # Waiting before the next refresh time.sleep(5)Führen Sie Ihr Skript aus:
python app.pyÜberprüfen Sie die Ausgabe.
Update the `message` in your Azure App Configuration store using Azure portal or CLI. First, update the `message` value, and then update the `sentinel` key value. Hello World!Aktualisieren Sie die folgenden Schlüsselwerte im Azure App Configuration-Speicher.
Schlüssel Wert Bezeichnung Inhaltstyp Nachricht Hallo Welt neu aufgelegt! Leer lassen Leer lassen sentinel 2 Leer lassen Leer lassen Nachdem die Werte aktualisiert wurden und das Bildwiederholintervall vorbei ist, erscheint der aktualisierte Wert.
Hello World Refreshed!
Webanwendungen
Das folgende Beispiel zeigt, wie eine vorhandene Webanwendung aktualisiert wird, um aktualisierbare Konfigurationswerte zu verwenden. Eine Callback-Funktion kann an das on_refresh_success-Schlüsselwortargument der load-Funktion übergeben werden. Dieser Rückruf wird aufgerufen, wenn eine Konfigurationsänderung auf dem Server erkannt wird und zum Aktualisieren der Konfigurationswerte in der Anwendung verwendet werden kann.
Richten Sie Azure App Configuration in app.py ein, um Ihre Konfigurationswerte zu laden. Aktualisieren Sie dann Ihre Endpunkte, um nach aktualisierten Konfigurationswerten zu suchen.
from azure.appconfiguration.provider import load, WatchKey
from azure.identity import DefaultAzureCredential
azure_app_config = None # declare azure_app_config as a global variable
def on_refresh_success():
app.config.update(azure_app_config)
global azure_app_config
azure_app_config = load(endpoint=os.environ.get("AZURE_APPCONFIG_ENDPOINT"),
credential=DefaultAzureCredential(),
refresh_on=[WatchKey("sentinel")],
on_refresh_success=on_refresh_success,
refresh_interval=10, # Default value is 30 seconds, shortened for this sample
)
@app.route("/")
def index():
global azure_app_config
# Refresh the configuration from Azure App Configuration service.
azure_app_config.refresh()
# Access a configuration setting directly from within Flask configuration
print("Request for index page received")
context = {}
context["message"] = app.config.get("message")
return render_template("index.html", **context)
Aktualisieren Sie die Vorlage index.html, um die neuen Konfigurationswerte zu verwenden.
<!doctype html>
<head>
<title>Hello Azure App Configuration - Python Flask Example</title>
</head>
<html>
<body>
<main>
<div>
<h1>{{message}}</h1>
</div>
</main>
</body>
</html>
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 nicht verstrichen ist oder 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.
Hinweis
Wenn das Aktualisierungsintervall noch nicht verstrichen ist, wird keine Aktualisierung versucht, und die Prüfung wird sofort beendet.
Nächste Schritte
In diesem Tutorial haben Sie Ihre Python-App aktiviert, um Konfigurationseinstellungen dynamisch aus Azure App Configuration zu aktualisieren. Fahren Sie mit dem nächsten Tutorial fort, um zu erfahren, wie Sie eine von Azure verwaltete Identität hinzufügen, um den Zugriff auf Azure App Configuration zu optimieren.