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

V tomto rychlém startu vytvoříte příznak funkce v Azure App Configuration a použijete ho k dynamickému ovládání Python aplikace, čímž vytvoříte komplexní implementaci správy funkcí.

Podpora správy funkcí rozšiřuje funkci dynamické konfigurace v App Configuration. Příklady v tomto rychlém úvodu vycházejí z aplikace v Pythonu představené v tutoriálu k dynamické konfiguraci. Než budete pokračovat, dokončete rychlý start a tutoriál na tvorbu Python aplikací s dynamickou konfigurací.

Knihovna pro správu funkcí nezávisí na žádné knihovně Azure. Integruje se s konfigurací aplikací prostřednictvím poskytovatele konfigurace Python.

Požadavky

Přidejte přepínač funkcí

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 nemělo být zaškrtnuté políčko Povolit příznak funkce.

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 vašeho úložiště App Configuration. 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 "<AppConfigurationEndpoint>"
    

    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íč Stát
    Beta Zapnuto
  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í Azure App Configuration s funkcí dynamické aktualizace tak, aby využívala také 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 ve svém úložišti App Configuration povolený příznak funkce Beta.

V app.py nakonfigurujte metodu načítání Azure App Configuration tak, aby také načítala přepínače funkcí, a zároveň povolte aktualizaci přepínačů 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, jak příznak funkce funguje: na stránce se zobrazí zpráva Beta is enabled, ale pouze pokud je příznak funkce povolený v úložišti App Configuration.

Snímek obrazovky se zapnutým příznakem funkce beta.

Ú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 může okamžitě skončit, pokud interval obnovení ještě neuplynul nebo pokud již 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 neodstraníte omylem 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.

Za chvíli budou skupina prostředků a všechny její prostředky odstraněny.

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