Oktatóanyag: Dinamikus konfiguráció használata a Pythonban
A Azure-alkalmazás Configuration Python-szolgáltató beépített gyorsítótárazási és frissítési képességeket tartalmaz. Ez az oktatóanyag bemutatja, hogyan engedélyezheti a dinamikus konfigurációt Python-alkalmazásokban.
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Hozzon létre egyet ingyen.
- Egy Azure-alkalmazás konfigurációs tár. Hozzon létre egy áruházat.
- Python 3.8 vagy újabb – a Python Windowson való beállításával kapcsolatos információkért tekintse meg a Python windowsos dokumentációját
Kulcsértékek hozzáadása
Adja hozzá a következő kulcsértéket a Azure-alkalmazás Konfigurációs tárhoz. Ha többet szeretne tudni arról, hogyan adhat hozzá kulcsértékeket egy áruházhoz az Azure Portal vagy a parancssori felület használatával, lépjen a Kulcs-érték létrehozása elemre.
Kulcs | Érték | Felirat | Tartalomtípus |
---|---|---|---|
üzenet | "Helló világ!" alkalmazás! | Hagyja üresen | Hagyja üresen |
Sentinel | 1 | Hagyja üresen | Hagyja üresen |
Feljegyzés
A sentinel kulcs az a kulcs, amelyet az összes többi kulcs módosítása után frissít. Az alkalmazás figyeli a sentinel kulcsot. Ha változás észlelhető, az alkalmazás frissíti az összes konfigurációs értéket. Ez a megközelítés segít biztosítani az alkalmazásban a konfiguráció konzisztenciáját, és csökkenti a Azure-alkalmazás Konfigurációs tárba érkező kérelmek teljes számát, összehasonlítva a módosítások összes kulcsának figyelésével.
Konzolalkalmazások
Hozzon létre egy app.py nevű új Python-fájlt, és adja hozzá a következő kódot:
from azure.appconfiguration.provider import load, WatchKey import os import time connection_string = os.environ.get("APPCONFIGURATION_CONNECTION_STRING") # Connecting to Azure App Configuration using connection string # Setting up to refresh when the Sentinel key is changed. config = load( connection_string=connection_string, 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)
Futtassa a szkriptet:
python app.py
Kimenet ellenőrzése:
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!
Frissítse a következő kulcsértékeket a Azure-alkalmazás Konfigurációs tárra.
Kulcs Érték Felirat Tartalomtípus üzenet "Helló világ!" alkalmazás Frissítve! Hagyja üresen Hagyja üresen Sentinel 2 Hagyja üresen Hagyja üresen Az értékek frissítése után a frissített érték a frissítési időköz leteltével jelenik meg.
Hello World Refreshed!
Webes alkalmazások
Az alábbi példa bemutatja, hogyan frissíthet egy meglévő webalkalmazást frissíthető konfigurációs értékek használatára. A függvény kulcsszóargumentumához load
visszahívás adható on_refresh_success
meg. Ez a visszahívás akkor lesz meghívva, ha konfigurációmódosítást észlel a kiszolgálón, és az alkalmazás konfigurációs értékeinek frissítésére használható.
A app.py
Azure-alkalmazás konfiguráció beállítása a konfigurációs értékek betöltéséhez. Ezután frissítse a végpontokat, hogy ellenőrizze a frissített konfigurációs értékeket.
from azure.appconfiguration.provider import load, WatchKey
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(connection_string=os.environ.get("AZURE_APPCONFIG_CONNECTION_STRING")
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)
Frissítse a sablont index.html
az új konfigurációs értékek használatára.
<!doctype html>
<head>
<title>Hello Azure App Configuration - Python Flask Example</title>
</head>
<html>
<body>
<main>
<div>
<h1>{{message}}</h1>
</div>
</main>
</body>
</html>
Amikor ezek a végpontok aktiválódnak, a legújabb konfigurációs értékek használata érdekében frissítési ellenőrzés végezhető. Az ellenőrzés azonnal visszatérhet, ha a frissítési időköz nem telt el, vagy egy frissítés már folyamatban van.
Ha a frissítés befejeződött, az összes érték egyszerre frissül, így a konfiguráció mindig konzisztens az objektumon belül.
MEGJEGYZÉS: Ha a frissítési időköz nem telt el, akkor a rendszer nem próbálja meg azonnal visszaadni a frissítést.
Következő lépések
Ebben az oktatóanyagban engedélyezte, hogy a Python-alkalmazás dinamikusan frissítse a konfigurációs beállításokat Azure-alkalmazás Konfigurációból. Ha szeretné megtudni, hogyan használhat azure-beli felügyelt identitást a Azure-alkalmazás konfigurációjához való hozzáférés egyszerűsítéséhez, folytassa a következő oktatóanyagban.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: