Megosztás a következőn keresztül:


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

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 Címke Tartalomtípus
üzenet „Helló világ!” alkalmazás! Hagyja üresen Hagyja üresen
őrszem 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

  1. Hozzon létre egy app.py nevű új Python-fájlt, és adja hozzá a következő kódot:

    Ezzel hitelesítheti magát DefaultAzureCredential az Alkalmazáskonfigurációs áruházban. Kövesse az utasításokat a hitelesítő adatok alkalmazáskonfigurációs adatolvasói szerepkör hozzárendeléséhez. Győződjön meg arról, hogy elegendő időt hagy az engedély propagálására az alkalmazás futtatása előtt.

    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)
    
  2. Futtassa a szkriptet:

    python app.py
    
  3. 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!
    
  4. Frissítse a következő kulcsértékeket a Azure-alkalmazás Konfigurációs tárra.

    Kulcs Érték Címke Tartalomtípus
    üzenet „Helló világ!” alkalmazás Frissítve! Hagyja üresen Hagyja üresen
    őrszem 2 Hagyja üresen Hagyja üresen
  5. 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 on_refresh_success visszahívás adható load 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.pyAzure-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
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)

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>

Itt talál egy teljes mintaprojektet.

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.