Rychlý start: Použití Azure Cache for Redis s aplikací v Pythonu

V tomto rychlém startu zahrnete Azure Cache for Redis do skriptu Pythonu pro přístup k zabezpečené vyhrazené mezipaměti, která je přístupná z libovolné aplikace v Azure.

Přeskočit na kód

Tento článek popisuje, jak vytvořit aplikaci v Pythonu a pak upravit kód tak, aby skončil s funkční ukázkovou aplikací.

Pokud chcete přeskočit přímo ke kódu, podívejte se na ukázku rychlého startu Pythonu na GitHubu.

Požadavky

Vytvoření mezipaměti

  1. Pokud chcete vytvořit mezipaměť, přihlaste se k webu Azure Portal. V nabídce portálu vyberte Vytvořit prostředek.

    Sceenshot zobrazte zvýrazněnou možnost Vytvořit prostředek v levém navigačním podokně na webu Azure Portal.

  2. V podokně Začínáme zadejte azure Cache for Redis na panelu hledání. Ve výsledcích hledání vyhledejte Azure Cache for Redis a pak vyberte Vytvořit.

    Snímek obrazovky znázorňující Azure Marketplace se službou Azure Cache for Redis ve vyhledávacím poli a zvýrazněným tlačítkem Vytvořit

  3. V podokně New Redis Cache na kartě Základy nakonfigurujte pro mezipaměť následující nastavení:

    Nastavení Akce Popis
    Předplatné Vyberte své předplatné Azure. Předplatné, které se má použít k vytvoření nové instance Azure Cache for Redis.
    Skupina prostředků Vyberte skupinu prostředků nebo vyberte Vytvořit novou a zadejte název nové skupiny prostředků. Název skupiny prostředků, ve které chcete vytvořit mezipaměť a další prostředky. Když umístíte všechny prostředky aplikace do jedné skupiny prostředků, můžete je snadno spravovat nebo odstraňovat společně.
    Název DNS Zadejte jedinečný název. Název mezipaměti musí být řetězec 1 až 63 znaků, který obsahuje jenom číslice, písmena a pomlčky. Název musí začínat a končit číslem nebo písmenem a nesmí obsahovat po sobě jdoucí pomlčky. Název hostitele vaší instance mezipaměti je \<DNS name>.redis.cache.windows.net.
    Místo Vyberte umístění. Oblast Azure, která je blízko jiných služeb, které používají vaši mezipaměť.
    Skladová položka mezipaměti Vyberte skladovou položku. Skladová položka určuje velikost, výkon a parametry funkcí, které jsou k dispozici pro mezipaměť. Další informace najdete v přehledu služby Azure Cache for Redis.
    Velikost mezipaměti Vyberte velikost mezipaměti. Další informace najdete v přehledu služby Azure Cache for Redis.
  4. Vyberte kartu Sítě nebo vyberte Další: Sítě.

  5. Na kartě Sítě vyberte metodu připojení, která se má použít pro mezipaměť.

  6. Vyberte kartu Upřesnit nebo vyberte Další: Upřesnit.

  7. V podokně Upřesnit ověřte nebo vyberte metodu ověřování na základě následujících informací:

    Snímek obrazovky s podoknem Upřesnit a dostupnými možnostmi, které můžete vybrat

    • Ve výchozím nastavení je pro novou mezipaměť Basic, Standard nebo Premium povolená služba Microsoft Entra Authentication a ověřování přístupových klíčů je zakázané.
    • U mezipamětí Basic nebo Standard můžete zvolit výběr pro port jiného typu než TLS.
    • U mezipamětí Standard a Premium můžete povolit zóny dostupnosti. Po vytvoření mezipaměti nemůžete zakázat zóny dostupnosti.
    • Pro mezipaměť Premium nakonfigurujte nastavení pro port bez protokolu TLS, clustering, spravovanou identitu a trvalost dat.

    Důležité

    Pro zajištění optimálního zabezpečení doporučujeme použít ID Microsoft Entra se spravovanými identitami k autorizaci požadavků v mezipaměti, pokud je to možné. Autorizace pomocí Microsoft Entra ID a spravovaných identit poskytuje vynikající zabezpečení a snadné použití prostřednictvím autorizace sdíleného přístupového klíče. Další informace o používání spravovaných identit s mezipamětí naleznete v tématu Použití MICROSOFT Entra ID pro ověřování mezipaměti.

  8. (Volitelné) Vyberte kartu Značky nebo vyberte Další: Značky.

  9. (Volitelné) Na kartě Značky zadejte název a hodnotu značky , pokud chcete zařadit prostředek mezipaměti do kategorií.

  10. Vyberte tlačítko Zkontrolovat a vytvořit.

    Na kartě Zkontrolovat a vytvořit Azure vaši konfiguraci automaticky ověří.

  11. Jakmile se zobrazí zelená zpráva o úspěšném ověření, vyberte Vytvořit.

Během několika minut dojde k novému nasazení mezipaměti. Průběh nasazení můžete monitorovat v podokně Přehled služby Azure Cache for Redis. Když se zobrazí stav Spuštěno, je mezipaměť připravená k použití.

Instalace knihovny redis-py

Redis-py je rozhraní Pythonu pro Azure Cache for Redis. Pomocí nástroje balíčků Pythonu pip nainstalujte balíček redis-py na příkazový řádek.

Následující příklad používá pip3 python 3 k instalaci redis-py ve Windows 11 v okně příkazového řádku správce.

Snímek obrazovky terminálu zobrazující instalaci rozhraní Redis-py do služby Azure Cache for Redis

Vytvoření skriptu Pythonu pro přístup k mezipaměti

Vytvořte skript Pythonu, který pro připojení ke službě Azure Cache for Redis používá BUĎ ID Microsoft Entra, nebo přístupové klíče. Doporučujeme používat ID Microsoft Entra.

Povolení ověřování Microsoft Entra ID v mezipaměti

V případě existující mezipaměti nejprve zkontrolujte, jestli je povolené ověřování Microsoft Entra. Pokud tomu tak není, povolte ověřování Microsoft Entra provedením následujících kroků. Pro ověřování v aplikacích doporučujeme použít ID Microsoft Entra.

  1. Na webu Azure Portal vyberte instanci Azure Cache for Redis, ve které chcete použít ověřování založené na tokenech Microsoft Entra.

  2. V nabídce služby v části Nastavení vyberte Ověřování.

  3. V podokně Ověřování zkontrolujte, zda je zaškrtnuté políčko Povolit ověřování Microsoft Entra. Pokud ano, můžete přejít k další části.

  4. V opačném případě zaškrtněte políčko Povolit ověřování Microsoft Entra. Pak zadejte jméno platného uživatele. Zvolte Uložit. Uživatelské jméno, které zadáte, se automaticky přiřadí zásadám přístupu vlastníka dat.

    Můžete také zadat spravovanou identitu nebo instanční objekt pro připojení k mezipaměti.

    Snímek obrazovky s vybranou možností Ověřování v nabídce služby a zaškrtnutou možností Povolit ověřování Microsoft Entra

  5. V dialogovém okně se zobrazí dotaz, jestli chcete aktualizovat konfiguraci, a jste informováni, že dokončení aktualizace trvá několik minut. Vyberte Ano.

    Důležité

    Po dokončení operace povolení se uzly v mezipaměti restartují, aby se načetla nová konfigurace. Tuto operaci doporučujeme dokončit během standardního časového období údržby nebo mimo špičku pracovní doby. Proces může trvat až 30 minut.

Informace o použití ID Microsoft Entra s Azure CLI najdete na referenčních stránkách identit.

Instalace knihovny Microsoft Authentication Library

Microsoft Authentication Library (MSAL) získává tokeny zabezpečení z platformy Microsoft Identity Platform pro ověřování uživatelů.

Instalace knihovny MSAL:

  1. Nainstalujte MSAL pro Python.

  2. Nainstalujte klientskou knihovnu identit Azure v Pythonu. Knihovna používá knihovnu MSAL k zajištění podpory ověřování tokenů.

    Nainstalujte tuto knihovnu pomocí nástroje pip:

pip install azure-identity

Vytvoření skriptu Pythonu pomocí Microsoft Entra ID

  1. Vytvořte textový soubor. Uložte soubor jako PythonApplication1.py.

  2. V PythonApplication1.py přidejte a upravte následující skript.

    Ve skriptu:

    • Nahraďte <Your Host Name> hodnotou z instance Azure Cache for Redis. Váš název hostitele má formulář <DNS name>.redis.cache.windows.net.
    • Nahraďte <Your Username> hodnotou uživatele Microsoft Entra ID.
    import redis
    from azure.identity import DefaultAzureCredential
    
    scope = "https://redis.azure.com/.default"
    host = "<Your Host Name>"
    port = 6380
    user_name = "<Your Username>"
    
    
    def hello_world():
        cred = DefaultAzureCredential()
        token = cred.get_token(scope)
        r = redis.Redis(host=host,
                        port=port,
                        ssl=True,    # ssl connection is required.
                        username=user_name,
                        password=token.token,
                        decode_responses=True)
        result = r.ping()
        print("Ping returned : " + str(result))
    
        result = r.set("Message", "Hello!, The cache is working with Python!")
        print("SET Message returned : " + str(result))
    
        result = r.get("Message")
        print("GET Message returned : " + result)
    
        result = r.client_list()
        print("CLIENT LIST returned : ")
        for c in result:
            print(f"id : {c['id']}, addr : {c['addr']}")
    
    if __name__ == '__main__':
        hello_world()
    
  3. Před spuštěním kódu Pythonu v terminálu povolte terminál tak, aby používal Microsoft Entra ID:

    azd auth login

  4. Spusťte soubor PythonApplication1.py pomocí Pythonu. Ověřte, že výstup vypadá podobně jako v tomto příkladu:

    Snímek obrazovky terminálu zobrazující skript Pythonu pro testování přístupu k mezipaměti

Vytvoření skriptu Pythonu pomocí opětovného ověření

Přístupový token Microsoft Entra ID má omezenou životnost přibližně 75 minut. Pokud chcete zachovat připojení k mezipaměti, musíte token aktualizovat.

Tento příklad ukazuje, jak aktualizovat token pomocí Pythonu.

  1. Vytvořte textový soubor. Uložte soubor jako PythonApplication2.py.

  2. V PythonApplication2.py přidejte a upravte následující skript.

    Ve skriptu:

    • Nahraďte <Your Host Name> hodnotou z instance Azure Cache for Redis. Váš název hostitele má formulář <DNS name>.redis.cache.windows.net.
    • Nahraďte <Your Username> hodnotou uživatele Microsoft Entra ID.
    import time
    import logging
    import redis
    from azure.identity import DefaultAzureCredential
    
    scope = "https://redis.azure.com/.default"
    host = "<Your Host Name>"
    port = 6380
    user_name = "<Your Username>"
    
    def re_authentication():
        _LOGGER = logging.getLogger(__name__)
        cred = DefaultAzureCredential()
        token = cred.get_token(scope)
        r = redis.Redis(host=host,
                        port=port,
                        ssl=True,   # ssl connection is required.
                        username=user_name,
                        password=token.token,
                        decode_responses=True)
        max_retry = 3
        for index in range(max_retry):
            try:
                if _need_refreshing(token):
                    _LOGGER.info("Refreshing token...")
                    tmp_token = cred.get_token(scope)
                    if tmp_token:
                        token = tmp_token
                    r.execute_command("AUTH", user_name, token.token)
                result = r.ping()
                print("Ping returned : " + str(result))
    
                result = r.set("Message", "Hello!, The cache is working with Python!")
                print("SET Message returned : " + str(result))
    
                result = r.get("Message")
                print("GET Message returned : " + result)
    
                result = r.client_list()
                print("CLIENT LIST returned : ")
                for c in result:
                    print(f"id : {c['id']}, addr : {c['addr']}")
                break
            except redis.ConnectionError:
                _LOGGER.info("Connection lost. Reconnecting.")
                token = cred.get_token(scope)
                r = redis.Redis(host=host,
                                port=port,
                                ssl=True,   # ssl connection is required.
                                username=user_name,
                                password=token.token,
                                decode_responses=True)
            except Exception:
                _LOGGER.info("Unknown failures.")
                break
    
    
    def _need_refreshing(token, refresh_offset=300):
        return not token or token.expires_on - time.time() < refresh_offset
    
    if __name__ == '__main__':
        re_authentication()
    
  3. Spusťte soubor PythonApplication2.py pomocí Pythonu. Ověřte, že výstup vypadá podobně jako v tomto příkladu:

    Snímek obrazovky terminálu zobrazující skript Pythonu pro testování přístupu k mezipaměti

    Na rozdíl od předchozího příkladu, pokud platnost tokenu vyprší, kód v tomto příkladu automaticky aktualizuje token.

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

Pokud chcete dál používat prostředky, které jste vytvořili v tomto článku, ponechte skupinu prostředků.

V opačném případě můžete zabránit poplatkům souvisejícím s prostředky, pokud jste dokončili používání prostředků, můžete odstranit skupinu prostředků Azure, kterou jste vytvořili.

Upozorňující

Odstranění skupiny prostředků je nevratné. Když odstraníte skupinu prostředků, všechny prostředky ve skupině prostředků se trvale odstraní. Ujistěte se, že nechtěně neodstraníte nesprávnou skupinu prostředků nebo prostředky. Pokud jste prostředky vytvořili v existující skupině prostředků, která obsahuje prostředky, které chcete zachovat, můžete místo odstranění skupiny prostředků odstranit jednotlivé prostředky.

Odstranění skupiny prostředků

  1. Přihlaste se k portálu Azure Portal a potom vyberte Skupiny prostředků.

  2. Vyberte skupinu prostředků, která se má odstranit.

    Pokud existuje mnoho skupin prostředků, zadejte do pole Filtr libovolné pole název skupiny prostředků, kterou jste vytvořili pro dokončení tohoto článku. V seznamu výsledků hledání vyberte skupinu prostředků.

    Snímek obrazovky znázorňující seznam skupin prostředků, ze které si můžete vybrat, ze kterého chcete odstranit

  3. Vyberte Odstranit skupinu prostředků.

  4. V podokně Odstranit skupinu prostředků zadejte název skupiny prostředků, abyste ji potvrdili, a pak vyberte Odstranit.

    Snímek obrazovky znázorňující pole, které vyžaduje zadání názvu prostředku k potvrzení odstranění

Během několika okamžiků se odstraní skupina prostředků a všechny její prostředky.