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.
Provider języka Python usługi Azure App Configuration zawiera wbudowane mechanizmy buforowania i odświeżania. W tym samouczku pokazano, jak włączyć konfigurację dynamiczną w aplikacjach języka Python.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz je bezpłatnie.
- Magazyn usługi Azure App Configuration. Utwórz magazyn.
- Python wersji 3.8 lub nowszej. Informacje o konfiguracji Python na Windows znajdziesz w dokumentacji Python on Windows.
Dodaj pary klucz-wartość
Dodaj następującą parę klucz-wartość do magazynu Azure App Configuration. Aby uzyskać więcej informacji na temat dodawania par klucz-wartość do sklepu przy użyciu portalu Azure lub interfejsu CLI, zobacz Create a key-value.
| Klucz | Wartość | Etykieta | Typ zawartości |
|---|---|---|---|
| message | Witaj świecie! | Pozostaw pole puste | Pozostaw pole puste |
| Sentinel | 1 | Pozostaw pole puste | Pozostaw pole puste |
Uwaga
Klucz wartowniczy to klucz, który aktualizuje się po zakończeniu zmiany wszystkich pozostałych kluczy. Aplikacja monitoruje klucz Sentinel. Po wykryciu zmiany aplikacja odświeża wszystkie wartości konfiguracji. Takie podejście pomaga zapewnić spójność konfiguracji w Twojej aplikacji i zmniejszyć łączną liczbę żądań wysyłanych do magazynu Azure App Configuration w porównaniu z monitorowaniem wszystkich kluczy pod kątem zmian.
Aplikacje konsolowe
Utwórz nowy plik w języku Python o nazwie app.py i dodaj następujący kod:
Używasz
DefaultAzureCredential, aby uwierzytelniać się w magazynie App Configuration. Postępuj zgodnie z instrukcjami, aby przypisać swoim poświadczeniom rolę Czytelnik danych konfiguracji aplikacji. Przed uruchomieniem aplikacji należy odczekać wystarczająco dużo czasu, aby uprawnienie mogło się rozpropagować.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)Uruchom skrypt:
python app.pySprawdź dane wyjściowe.
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!Zaktualizuj następujące wartości klucza do magazynu konfiguracji aplikacja systemu Azure.
Klucz Wartość Etykieta Typ zawartości message Witaj, odświeżony świat! Pozostaw pole puste Pozostaw pole puste Sentinel 2 Pozostaw pole puste Pozostaw pole puste Po aktualizacji wartości i przejściu interwału odświeżania pojawia się zaktualizowana wartość.
Hello World Refreshed!
Aplikacje sieci Web
W poniższym przykładzie pokazano, jak zaktualizować istniejącą aplikację internetową w celu używania odświeżalnych wartości konfiguracji. Do argumentu słowa kluczowego on_refresh_success funkcji load można przekazać wywołanie zwrotne. To wywołanie zwrotne zostanie wywołane po wykryciu zmiany konfiguracji na serwerze i może służyć do aktualizowania wartości konfiguracji w aplikacji.
W app.py skonfiguruj usługę Azure App Configuration, aby załadować wartości konfiguracji. Następnie zaktualizuj punkty końcowe, aby sprawdzić zaktualizowane wartości konfiguracji.
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)
Zaktualizuj szablon index.html , aby używał nowych wartości konfiguracji.
<!doctype html>
<head>
<title>Hello Azure App Configuration - Python Flask Example</title>
</head>
<html>
<body>
<main>
<div>
<h1>{{message}}</h1>
</div>
</main>
</body>
</html>
Pełny przykładowy projekt można znaleźć tutaj.
Za każdym razem, gdy te punkty końcowe są wywoływane, można przeprowadzić kontrolę odświeżenia, aby mieć pewność, że używane są najnowsze wartości konfiguracyjne. Sprawdzenie może zostać zwrócone 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.
Uwaga
Jeśli interwał odświeżania nie minął, nie próbuje się odświeżenia i sprawdzenie wraca natychmiast.
Następne kroki
W tym samouczku włączono w aplikacji w języku Python dynamiczne odświeżanie ustawień konfiguracji z usługi Azure App Configuration. Aby dowiedzieć się, jak za pomocą tożsamości zarządzanej platformy Azure usprawnić dostęp do usługi Azure App Configuration, przejdź do kolejnego samouczka.