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 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

  1. 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)
    
  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 Felirat Tartalomtípus
    üzenet "Helló világ!" alkalmazás Frissítve! Hagyja üresen Hagyja üresen
    Sentinel 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 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.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

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>

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.