Sdílet prostřednictvím


Rychlý start: Přidání příznaků funkcí do aplikace v Pythonu

V tomto rychlém startu vytvoříte příznak funkce v konfiguraci Aplikace Azure a použijete ho k dynamickému řízení aplikací v Pythonu, abyste vytvořili kompletní implementaci správy funkcí.

Podpora správy funkcí rozšiřuje funkci dynamické konfigurace v nástroji App Configuration. Tyto příklady v rychlém startu vycházejí z aplikace Python představené v kurzu dynamické konfigurace. Než budete pokračovat, dokončete rychlý start a kurz pro vytvoření aplikací Pythonu s dynamickou konfigurací nejprve.

Tato knihovna nemá závislost na žádné knihovně Azure. Bezproblémově se integrují se službou App Configuration prostřednictvím svého poskytovatele konfigurace Pythonu.

Požadavky

Přidání příznaku funkce

Přidejte příznak funkce s názvem Beta do obchodu App Configuration Store a ponechte popis a popis s výchozími hodnotami. Další informace o přidání příznaků funkcí do úložiště pomocí webu Azure Portal nebo rozhraní příkazového řádku najdete v části Vytvoření příznaku funkce. V této fázi by měla být zaškrtnutá bocka příznaku funkce povolit.

Snímek obrazovky s příznakem povolení funkce s názvem Beta

Konzolové aplikace

  1. Nainstalujte funkci Správa funkcí pomocí pip install příkazu.

    pip install featuremanagement
    
  2. Vytvořte nový soubor Pythonu s názvem app.py a přidejte následující kód:

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

Při spuštění aplikace se otevře okno prohlížeče pro ověření uživatele. Uživatel musí mít alespoň App Configuration Data Reader roli pro přístup ke službě App Configuration Store. Další informace najdete v tématu Role Konfigurace aplikací.

  1. Nastavte proměnnou prostředí s názvem APP_CONFIGURATION_ENDPOINT a nastavte ji na koncový bod do obchodu App Configuration Store. Na příkazovém řádku spusťte následující příkaz a restartujte příkazový řádek, aby se změna projevila:

    Pokud chcete aplikaci sestavit a spustit místně pomocí příkazového řádku windows, spusťte následující příkaz:

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

    Restartujte příkazový řádek, aby se změna projevila. Ověřte, že je správně nastavená, a to tak, že vytisknete hodnotu proměnné prostředí.

  2. Spusťte aplikaci Pythonu.

    python app.py
    
  3. Na portálu Konfigurace aplikace vyberte Správce funkcí a pomocí přepínače ve sloupci Povoleno změňte stav příznaku funkce Beta na Zapnuto.

    Klíč State
    Beta Zapnout
  4. Po přibližně 30s, což je interval aktualizace pro poskytovatele, aplikace vytiskne následující:

    Beta is True
    

Webové aplikace

Následující příklad ukazuje, jak aktualizovat existující webovou aplikaci pomocí Aplikace Azure Konfigurace s dynamickou aktualizací, aby se také používaly příznaky funkcí. Podrobnější příklad použití dynamické aktualizace pro hodnoty konfigurace najdete v tématu Dynamická konfigurace Pythonu. Než budete pokračovat, ujistěte se, že máte v Obchodě App Configuration Store povolený příznak funkce Beta.

V app.pyaplikaci nastavte metodu načítání Aplikace Azure Konfigurace pro další načtení příznaků funkcí spolu s povolením aktualizace příznaků funkcí.

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)

Aktualizujte také trasy a zkontrolujte aktualizované příznaky funkcí.

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

Aktualizujte šablonu index.html tak, aby používala nové příznaky funkcí.

...

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

Po aktualizaci a spuštění aplikace uvidíte příznak funkce v akci, kde Beta is enabled se zpráva zobrazí na stránce, ale jenom v případě, že je příznak funkce povolený v App Configuration Storu.

Snímek obrazovky s povolenou beta verzí příznaku funkce

Úplný ukázkový projekt najdete tady.

Kdykoli se tyto koncové body aktivují, můžete provést kontrolu aktualizace, aby se zajistilo, že se použijí nejnovější hodnoty konfigurace. Tato kontrola se může vrátit okamžitě, pokud se interval aktualizace ještě neprodá nebo už probíhá aktualizace.

Po dokončení aktualizace se aktualizují všechny hodnoty najednou, takže konfigurace je vždy konzistentní v rámci objektu.

Vyčištění prostředků

Pokud nechcete dál používat prostředky vytvořené v tomto článku, odstraňte skupinu prostředků, kterou jste tady vytvořili, abyste se vyhnuli poplatkům.

Důležité

Odstranění skupiny prostředků je nevratné. Skupina prostředků a všechny prostředky v ní se trvale odstraní. Ujistěte se, že omylem neodstraníte nesprávnou skupinu prostředků nebo prostředky. Pokud jste vytvořili prostředky pro tento článek ve skupině prostředků, která obsahuje další prostředky, které chcete zachovat, odstraňte jednotlivé prostředky z příslušného podokna místo odstranění skupiny prostředků.

  1. Přihlaste se k webu Azure Portal a vyberte skupiny prostředků.
  2. Do pole Filtrovat podle názvu zadejte název vaší skupiny prostředků.
  3. V seznamu výsledků vyberte název skupiny prostředků, abyste zobrazili přehled.
  4. Vyberte Odstranit skupinu prostředků.
  5. Zobrazí se výzva k potvrzení odstranění skupiny prostředků. Potvrďte název skupiny prostředků a vyberte Odstranit.

Po chvíli se skupina prostředků a všechny její prostředky odstraní.

Další kroky

V tomto rychlém startu jste vytvořili nový obchod App Configuration a použili ho ke správě funkcí v aplikaci v Pythonu prostřednictvím knihovny správy funkcí.