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


Rövid útmutató: Funkciójelzők hozzáadása Python-alkalmazásokhoz

Ebben a rövid útmutatóban egy funkciójelzőt fog létrehozni Azure-alkalmazás Konfigurációban, és segítségével dinamikusan vezérelheti a Python-alkalmazásokat a funkciókezelés végpontok közötti implementációjának létrehozásához.

A szolgáltatásfelügyeleti támogatás kibővíti az alkalmazáskonfiguráció dinamikus konfigurációs funkcióját. Ezek a példák a gyorsútmutatóban a dinamikus konfigurációs oktatóanyagban bevezetettPpython-alkalmazásokra épülnek. A folytatás előtt fejezze be a gyorsútmutatót és az oktatóanyagot a dinamikus konfigurációjú Python-alkalmazások létrehozásához.

Ez a tár nem függ az Azure-kódtáraktól. Zökkenőmentesen integrálhatók az Alkalmazáskonfigurációval a Python-konfigurációszolgáltatón keresztül.

Előfeltételek

Funkciójelző hozzáadása

Adjon hozzá egy bétaverzió nevű funkciójelzőt az Alkalmazáskonfigurációs áruházhoz, és hagyja meg a címkét és a leírást az alapértelmezett értékekkel. Ha többet szeretne tudni arról, hogyan adhat hozzá funkciójelzőket egy áruházhoz az Azure Portal vagy a parancssori felület használatával, lépjen a Funkciójelölő létrehozása elemre. Ebben a szakaszban az Enable feature flag check bock (Funkciójelző engedélyezése) jelölőnégyzetet nem kell bejelölni.

Képernyőkép a bétaverzió nevű funkciójelző engedélyezéséről.

Konzolalkalmazások

  1. Telepítse a Szolgáltatáskezelést a pip install parancs használatával.

    pip install featuremanagement
    
  2. Hozzon létre egy új pythonfájlt, app.py és adja hozzá a következő kódot:

    from featuremanagement import FeatureManager
    from azure.identity import InteractiveBrowserCredential
    from azure.appconfiguration.provider import load
    import os
    from time import sleep
    
    endpoint = os.environ["APP_CONFIGURATION_ENDPOINT"]
    
    # Connecting to Azure App Configuration using an endpoint
    # credential is used to authenticate the client, the InteractiveBrowserCredential is used for this sample. It will open a browser window to authenticate the user. For all credential options see [credential classes](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#credential-classes).
    # feature_flag_enabled makes it so that the provider will load feature flags from Azure App Configuration
    # feature_flag_refresh_enabled makes it so that the provider will refresh feature flags from Azure App Configuration, when the refresh operation is triggered
    config = load(endpoint=endpoint, credential=InteractiveBrowserCredential(), feature_flag_enabled=True, feature_flag_refresh_enabled=True)
    
    feature_manager = FeatureManager(config)
    
    # Is always false
    print("Beta is ", feature_manager.is_enabled("Beta"))
    
    while not feature_manager.is_enabled("Beta"):
        sleep(5)
        config.refresh()
    
    print("Beta is ", feature_manager.is_enabled("Beta"))
    

Az alkalmazás indításakor megnyílik egy böngészőablak a felhasználó hitelesítéséhez. A felhasználónak legalább a szerepkörével kell rendelkeznie az App Configuration Data Reader Alkalmazáskonfigurációs áruház eléréséhez. További információ: Alkalmazáskonfigurációs szerepkörök .

  1. Állítson be egy APP_CONFIGURATION_ENDPOINT nevű környezeti változót, és állítsa a végpontra az Alkalmazáskonfigurációs áruházban. Futtassa a következő parancsot a parancssorban, és indítsa újra a parancssort a módosítás érvénybe lépésének engedélyezéséhez:

    Ha az alkalmazást helyileg szeretné létrehozni és futtatni a Windows parancssorával, futtassa a következő parancsot:

    setx APP_CONFIGURATION_ENDPOINT "endpoint-of-your-app-configuration-store"
    

    Indítsa újra a parancssort a módosítás érvénybe lépésének engedélyezéséhez. Ellenőrizze, hogy megfelelően van-e beállítva a környezeti változó értékének nyomtatásával.

  2. Futtassa a Python-alkalmazást.

    python app.py
    
  3. Az Alkalmazáskonfigurációs portálon válassza a Funkciókezelőt, és módosítsa a bétaverzió funkciójelzőjének állapotát Be állásra az Engedélyezett oszlop kapcsolójával.

    Kulcs Állapot
    Beta Be
  4. Körülbelül 30-at követően, amely a szolgáltató frissítési időköze, az alkalmazás a következőket nyomtatja ki:

    Beta is True
    

Webes alkalmazások

Az alábbi példa bemutatja, hogyan frissíthet egy meglévő webalkalmazást Azure-alkalmazás Konfiguráció dinamikus frissítéssel funkciójelölők használatára. A dinamikus frissítés konfigurációs értékekhez való használatának részletesebb példáját a Python dinamikus konfigurációja című témakörben találja. A folytatás előtt győződjön meg arról, hogy engedélyezve van a bétafunkció-jelző az Alkalmazáskonfigurációs áruházban.

Ebben app.pyaz esetben állítsa be Azure-alkalmazás Konfiguráció terhelési módszerét a funkciójelölők további betöltéséhez, valamint a funkciójelölők frissítésének engedélyezéséhez.

from featuremanagement import FeatureManager

...

global azure_app_config, feature_manager
# Connecting to Azure App Configuration using an endpoint
# credential is used to authenticate the client, the InteractiveBrowserCredential is used for this sample. It will open a browser window to authenticate the user. For all credential options see [credential classes](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#credential-classes).
# feature_flag_enabled makes it so that the provider will load feature flags from Azure App Configuration
# feature_flag_refresh_enabled makes it so that the provider will refresh feature flags from Azure App Configuration, when the refresh operation is triggered
azure_app_config = load(endpoint=endpoint, credential=InteractiveBrowserCredential(),
                        refresh_on=[WatchKey("sentinel")],
                        on_refresh_success=on_refresh_success,
                        refresh_interval=10, # Default value is 30 seconds, shortened for this sample
                        feature_flag_enabled=True,
                        feature_flag_refresh_enabled=True,
                    )
feature_manager = FeatureManager(config)

Emellett frissítse az útvonalakat, hogy ellenőrizze a frissített funkciójelzőket.

@app.route("/")
def index():
    ...
    context["message"] = azure_app_config.get("message")
    context["beta"] = feature_manager.is_enabled("Beta")
    ...

Frissítse a sablont index.html az új funkciójelzők használatára.

...

<body>
  <main>
    <div>
      <h1>{{message}}</h1>
      {% if beta %}
      <h2>Beta is enabled</h2>
      {% endif %}
    </div>
  </main>
</body>

Miután frissítette és futtatta az alkalmazást, működés közben láthatja a funkciójelzőt, ahol az Beta is enabled üzenet megjelenik az oldalon, de csak akkor, ha a funkciójelző engedélyezve van az Alkalmazáskonfigurációs áruházban.

Képernyőkép a funkciójelző bétaverziójának engedélyezéséről.

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 még nem járt le, 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.

Az erőforrások eltávolítása

Ha nem szeretné folytatni a cikkben létrehozott erőforrások használatát, törölje az itt létrehozott erőforráscsoportot a díjak elkerülése érdekében.

Fontos

Az erőforráscsoport törlése nem vonható vissza. Az erőforráscsoport és a benne lévő összes erőforrás véglegesen törlődik. Győződjön meg arról, hogy nem véletlenül törli a rossz erőforráscsoportot vagy erőforrásokat. Ha a cikk erőforrásait olyan erőforráscsoporton belül hozta létre, amely más megtartani kívánt erőforrásokat tartalmaz, törölje az egyes erőforrásokat a megfelelő panelről az erőforráscsoport törlése helyett.

  1. Jelentkezzen be az Azure Portalra, és válassza ki az Erőforráscsoportokat.
  2. A Szűrés név szerint mezőbe írja be az erőforráscsoport nevét.
  3. Az eredménylistában válassza ki az erőforráscsoport nevét az áttekintés megtekintéséhez.
  4. Válassza az Erőforráscsoport törlése elemet.
  5. A rendszer az erőforráscsoport törlésének megerősítését kéri. Adja meg a megerősítéshez az erőforráscsoport nevét, és válassza a Törlés lehetőséget.

Néhány pillanat múlva az erőforráscsoport és annak összes erőforrása törlődik.

Következő lépések

Ebben a rövid útmutatóban létrehozott egy új Alkalmazáskonfigurációs áruházat, amely a Szolgáltatáskezelési kódtáron keresztül kezeli a Python-alkalmazások funkcióit.