Sdílet prostřednictvím


Rychlý start: Použití Azure Redis v Pythonu

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

Přeskočit na kód na GitHubu

Pokud chcete přeskočit přímo ke kódu, přečtěte si rychlý start Pythonu na GitHubu.

Požadavky

Vytvoření instance Azure Managed Redis

  1. Pokud chcete vytvořit instanci Azure Managed Redis, přihlaste se k webu Azure Portal a vyberte Vytvořit prostředek.

  2. Na stránce Nový zadejte do vyhledávacího pole Azure Cache for Redis.

  3. Na kartě New Redis Cache nakonfigurujte základní nastavení vaší nové mezipaměti.

    Nastavení Zvolit hodnotu Popis
    Předplatné Rozevřete seznam a vyberte svoje předplatné. Předplatné, ve kterém se má tato nová instance Azure Managed Redis vytvořit.
    Skupina zdrojů Rozevírací seznam a vyberte skupinu prostředků nebo vyberte Vytvořit novou a zadejte nový název 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 Zadejte název, který je v oblasti jedinečný. Název mezipaměti musí být řetězec mezi 1 a 63 znaky v kombinaci s názvem oblasti mezipaměti, který obsahuje pouze číslice, písmena nebo pomlčky. (Pokud je název mezipaměti kratší než 45 znaků, měl by fungovat ve všech aktuálně dostupných oblastech.) Název musí začínat a končit číslicí nebo písmenem a nesmí obsahovat po sobě jdoucí pomlčky. Název hostitele vaší instance mezipaměti je \<DNS name\>.\<Azure region\>.redis.azure.net.
    Oblast Rozbalte a vyberte umístění. Azure Managed Redis je k dispozici ve vybraných oblastech Azure.
    Datová vrstva Vyberte buď In-memory pro vysoce výkonné mezipaměti, nebo Flash pro mezipaměti s nižším výkonem. Úrovně úložiště v paměti zahrnují Vyvážená, Paměťově optimalizovaná a Výpočetně optimalizovaná. Použijte vrstvu Flash k použití datového úložiště v paměti (RAM) a datového úložiště na disku (SSD).
    Velikost mezipaměti Rozbalte seznam a vyberte velikost. Velikost mezipaměti závisí na úrovni. Nejmenší velikost je úroveň Balanced. Největší paměťová vrstva je vrstva Optimalizovaná pro paměť.
    výkon Rozevřete rozevírací seznam a vyberte předvolbu výkonu. Výkon závisí na počtu vCPU. Počet virtuálních procesorů se liší podle úrovně. Výpočetně optimalizované má nejvíce virtuálních procesorů.

    Pokyny k výběru správné úrovně výkonu najdete v tématu Výběr správné úrovně.

    Důležité

    Všechny vrstvy v paměti, které používají více než 120 GB úložiště, jsou v rámci veřejné ukázky, včetně Paměť optimalizovaná; M150 a vyšší; Vyvážená B150 a vyšší; a Výpočetně optimalizováno; X150 a vyšší. Všechny tyto úrovně a vyšší jsou ve verzi Public Preview.

    Všechny úrovně Optimalizované pro Flash jsou ve verzi Public Preview.

  4. Vyberte Další: Sítě a vyberte veřejný koncový bod nebo privátní koncový bod.

  5. Vyberte Další: Aktivní geografická replikace. Pokud chcete použít aktivní geografickou replikaci, musí být povolená během zřizování. Mezipaměti bez aktivní geografické replikace není možné později přidat do aktivních skupin geografické replikace ani se k nim připojit. Další informace najdete v tématu Konfigurace aktivní geografické replikace pro instance Azure Managed Redis.

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

    Nakonfigurujte všechny moduly Redis , které chcete přidat do instance.

    Ve výchozím nastavení pro novou spravovanou mezipaměť:

    • Je povoleno ID Microsoft Entra.
    • Ověřování přístupových klíčů je zakázáno z bezpečnostních důvodů.

    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.

    Nastavení zásad clusteringu:

    • Použití enterprise k použití RedisSearch nebo jiných modulů
    • Použijte OSS pro clusterovanou mezipaměť.
    • Pro použití neseskupené mezipaměti použijte Non-clustered (Preview).

    Další informace o výběru zásad clusteringu najdete v tématu Zásady clusteru.

    Důležité

    Po vytvoření nemůžete změnit zásady clusteringu instance Azure Managed Redis. Pokud používáte RediSearch, vyžaduje se zásada podnikového clusteru a NoEviction je to jediná podporovaná zásada vyřazení.

    Důležité

    Pokud tuto instanci mezipaměti používáte ve skupině geografické replikace, zásady vyřazení nelze po vytvoření instance změnit. Před vytvořením mezipaměti nezapomeňte znát zásady vyřazení primárních uzlů. Další informace o aktivní geografické replikaci najdete v tématu Požadavky na aktivní geografickou replikaci.

    Důležité

    Po vytvoření instance mezipaměti nemůžete měnit moduly. Moduly musí být povolené v době, kdy vytvoříte instanci Azure Cache for Redis. Po vytvoření mezipaměti není možné povolit konfiguraci modulu.

  7. Vyberte Další: Značky a přeskočte.

  8. Vyberte Další: Zkontrolovat a vytvořit.

  9. Zkontrolujte nastavení a vyberte Vytvořit.

    Vytvoření instance Redis trvá několik minut. Průběh můžete sledovat na stránce přehledu Azure Managed Redis. Když je stav zobrazen jako Spuštěno, je mezipaměť připravená k použití.

Vytvoření instance Azure Cache for Redis

  1. Na webu Azure Portal vyhledejte a vyberte Azure Cache for Redis.

  2. Na stránce Azure Cache for Redis vyberte Vytvořit>Azure Cache for Redis.

  3. Na kartě Základy na stránce Nová mezipaměť Redis nakonfigurujte následující nastavení:

    • Předplatné: Vyberte předplatné, které chcete použít.
    • Skupina prostředků: Vyberte skupinu prostředků nebo vyberte Vytvořit novou a zadejte název nové skupiny prostředků. Když umístíte všechny prostředky aplikace do stejné skupiny prostředků, můžete je snadno spravovat nebo odstraňovat společně.
    • Název: Zadejte název mezipaměti, který je v oblasti jedinečný. Název musí:
      • Musí být řetězec 1 až 63 znaků.
      • Obsahují jenom číslice, písmena a pomlčky.
      • Začněte a končit číslem nebo písmenem.
      • Neobsahuje po sobě jdoucí pomlčky.
    • Oblast: Vyberte oblast Azure poblíž jiných služeb, které používají vaši mezipaměť.
    • Skladová položka mezipaměti: Výběrem skladové položky určete dostupné velikosti, výkon a funkce mezipaměti.
    • Velikost mezipaměti: Vyberte velikost mezipaměti. Další informace najdete v přehledu služby Azure Cache for Redis.

    Snímek obrazovky znázorňující kartu Základy na stránce Nová mezipaměť 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ěť. Privátní koncový bod se doporučuje pro zabezpečení. Pokud vyberete privátní koncový bod, vyberte Přidat privátní koncový bod a vytvořte privátní koncový bod.

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

  7. V podokně Upřesnit nakonfigurujte následující možnosti:

    • Vyberte ověřování Microsoft Entra nebo ověřování přístupových klíčů. Ověřování Microsoft Entra je ve výchozím nastavení povolené.
    • Zvolte, jestli chcete povolit port, který není tls.
    • Pro mezipaměť Premium můžete nakonfigurovat nebo zakázat zóny dostupnosti. Po vytvoření mezipaměti nemůžete zakázat zóny dostupnosti. Pro standardní mezipaměť se zóny dostupnosti přidělují automaticky. Zóny dostupnosti nejsou dostupné pro skladovou položku Basic.
    • Pro mezipaměť Premium nakonfigurujte nastavení počtu replik, seskupení, počtu shardů, systémem přiřazené spravované identity a trvalosti dat.

    Následující obrázek znázorňuje kartu Upřesnit pro skladovou položku Standard.

    Snímek obrazovky zobrazující pokročilé podokno mezipaměti úrovně SKU Standard

    Důležité

    Pokud je to možné, použijte ID Microsoft Entra se spravovanými identitami k autorizaci požadavků na vaši mezipaměť. Autorizace pomocí ID Microsoft Entra a spravované identity poskytuje lepší zabezpečení a je snazší ji používat než autorizaci 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ě můžete vybrat kartu Značky nebo vybrat Další: Značky a zadat názvy a hodnoty značek pro kategorizaci prostředků mezipaměti.

  9. Vyberte Zkontrolovat a vytvořit a po ověření vyberte Vytvořit.

Nasazení nové mezipaměti trvá několik minut. Průběh nasazení můžete monitorovat na portálu na stránce Azure Cache for Redis. Když se stav mezipaměti zobrazí jako Spuštěno, je mezipaměť připravená k použití.

Instalace knihovny redis-py

Redis-py je rozhraní Pythonu pro Redis. Pomocí nástroje pipBalíčky Pythonu redis-py nainstalujte balíček z příkazového řádku.

Následující příklad použitý pip3 pro Python 3 k instalaci redis-py ve Windows 11 z 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ý k připojení k instanci Azure Managed Redis používá buď ID Microsoft Entra, nebo přístupové klíče. Doporučujeme používat ID Microsoft Entra.

Použití ověřování Microsoft Entra ID v mezipaměti

Ve výchozím nastavení mají mezipaměti Azure Managed Redis povolené ověřování Microsoft Entra.

  1. Na webu Azure Portal vyberte mezipaměť, do které chcete použít ověřování založené na tokenech Microsoft Entra.

  2. V nabídce Prostředek vyberte Ověřování .

  3. Vyberte vybrat člena a zadejte jméno platného uživatele. Uživatel, který zadáte, se automaticky přiřadí zásadám přístupu vlastníka dat ve výchozím nastavení, když vyberete Uložit. Můžete také zadat spravovanou identitu nebo aplikační objekt pro připojení k instanci vyrovnávací paměti.

    Snímek obrazovky znázorňující ověřování vybrané v nabídce prostředků a zaškrtnuté políčko Povolit ověřování Microsoft Entra

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

Instalace knihovny Microsoft Authentication Library

  1. Nainstalujte knihovnu MSAL (Microsoft Authentication Library). Tato knihovna umožňuje získat tokeny zabezpečení z identity Microsoftu k ověřování uživatelů.

  2. K zajištění podpory ověřování tokenů můžete použít klientskou knihovnu Azure Identity v Pythonu, která používá knihovnu MSAL. Nainstalujte tuto knihovnu pomocí pip:

pip install azure-identity

Vytvoření skriptu Pythonu pomocí Microsoft Entra ID

  1. Vytvořte nový textový soubor, přidejte následující skript a uložte ho jako PythonApplication1.py.

  2. Nahraďte <Your Host Name> hodnotou z instance Azure Cache for Redis. Název vašeho hostitele je ve formuláři <DNS name>.<region>.redis.azure.net.

  3. Nahraďte <Your Username> hodnotami uživatele Microsoft Entra ID.

    import redis
    from azure.identity import DefaultAzureCredential
    
    scope = "https://redis.azure.com/.default"
    host = "<Your Host Name>"
    port = 10000
    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()
    
  4. Před spuštěním kódu Pythonu z terminálu se ujistěte, že autorizujete terminál pro použití Microsoft Entra ID.

    azd auth login

  5. Spusťte PythonApplication1.py s Pythonem. Měli byste vidět výsledky jako v následujícím 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é tokeny Microsoft Entra ID mají omezenou životnost, což je průměr 75 minut. Pokud chcete udržovat připojení k mezipaměti, musíte token aktualizovat. Tento příklad ukazuje, jak to provést pomocí Pythonu.

  1. Vytvořte nový textový soubor a přidejte následující skript. Pak soubor uložte jako PythonApplication2.py.

  2. Nahraďte <Your Host Name> hodnotou z vaší instance Azure Managed Redis. Název vašeho hostitele je ve formuláři <DNS name>.<region>.redis.azure.net.

  3. Nahraďte <Your Username> hodnotami 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 = 10000
    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()
    
  4. Spusťte PythonApplication2.py s Pythonem. Měli byste vidět výsledky jako v následujícím příkladu:

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

    Na rozdíl od prvního příkladu, pokud platnost vašeho tokenu vyprší, tento příklad ho automaticky aktualizuje.

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

Vytvořte skript Pythonu pro připojení k vaší instanci Redis pomocí ID Microsoft Entra nebo přístupových klíčů. Doporučujeme používat ID Microsoft Entra.

Použití ověřování Microsoft Entra ID v mezipaměti

Ve výchozím nastavení mají mezipaměti Azure Managed Redis povolené ověřování Microsoft Entra.

  1. Na webu Azure Portal vyberte mezipaměť, do které chcete použít ověřování založené na tokenech Microsoft Entra.

  2. V nabídce Prostředek vyberte Ověřování .

  3. Vyberte vybrat člena a zadejte jméno platného uživatele. Uživatel, který zadáte, se automaticky přiřadí zásadám přístupu vlastníka dat ve výchozím nastavení, když vyberete Uložit. Můžete také zadat spravovanou identitu nebo aplikační objekt pro připojení k instanci vyrovnávací paměti.

    Snímek obrazovky znázorňující ověřování vybrané v nabídce prostředků a zaškrtnuté políčko Povolit ověřování Microsoft Entra

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

Instalace knihovny Microsoft Authentication Library

  1. Nainstalujte knihovnu MSAL (Microsoft Authentication Library). Tato knihovna umožňuje získat tokeny zabezpečení z identity Microsoftu k ověřování uživatelů.

  2. K zajištění podpory ověřování tokenů můžete použít klientskou knihovnu Azure Identity v Pythonu, která používá knihovnu MSAL. Nainstalujte tuto knihovnu pomocí pip:

pip install azure-identity

Vytvoření skriptu Pythonu pomocí Microsoft Entra ID

  1. Vytvořte nový textový soubor, přidejte následující skript a uložte ho jako PythonApplication1.py.

  2. Nahraďte <Your Host Name> hodnotou z instance Azure Cache for Redis. Název vašeho hostitele je ve formuláři <DNS name>.redis.cache.windows.net.

  3. Nahraďte <Your Username> hodnotami 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()
    
  4. Před spuštěním kódu Pythonu z terminálu se ujistěte, že autorizujete terminál pro použití Microsoft Entra ID.

    azd auth login

  5. Spusťte PythonApplication1.py s Pythonem. Měli byste vidět výsledky jako v následujícím 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é tokeny Microsoft Entra ID mají omezenou životnost, což je průměr 75 minut. Pokud chcete udržovat připojení k mezipaměti, musíte token aktualizovat. Tento příklad ukazuje, jak to provést pomocí Pythonu.

  1. Vytvořte nový textový soubor a přidejte následující skript. Pak soubor uložte jako PythonApplication2.py.

  2. Nahraďte <Your Host Name> hodnotou z instance Azure Cache for Redis. Název vašeho hostitele je ve formuláři <DNS name>.redis.cache.windows.net.

  3. Nahraďte <Your Username> hodnotami 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()
    
  4. Spusťte PythonApplication2.py s Pythonem. Měli byste vidět výsledky jako v následujícím příkladu:

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

    Na rozdíl od prvního příkladu, pokud platnost vašeho tokenu vyprší, tento příklad ho automaticky aktualizuje.

Vyčistěte zdroje

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

Jinak pokud jste s prostředky hotovi, můžete odstranit skupinu prostředků Azure, kterou jste vytvořili, abyste se vyhnuli poplatkům.

Důležité

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

Odstranit skupinu prostředků

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

  2. Vyberte skupinu prostředků, kterou chcete odstranit.

    Pokud existuje mnoho skupin prostředků, použijte filtr pro jakékoli pole... zadejte název skupiny prostředků, kterou jste vytvořili pro tento článek. V seznamu výsledků vyberte skupinu prostředků.

    Snímek obrazovky se seznamem skupin prostředků, které se mají odstranit v pracovním podokně

  3. Vyberte odstranit skupinu zdrojů.

  4. Zobrazí se výzva k potvrzení odstranění skupiny prostředků. Zadejte název vaší skupiny prostředků pro potvrzení a poté vyberte Odstranit.

    Snímek obrazovky s formulářem, který vyžaduje název prostředku k potvrzení odstranění.

Po chvíli se skupina prostředků včetně všech prostředků, které obsahuje, odstraní.