Rychlý start: Použití Azure Redis v Pythonu
V tomto rychlém startu zahrnete azure Managed Redis (Preview) 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
- Předplatné Azure – vytvoření bezplatného předplatného
- Python 3
- Pro macOS nebo Linux si stáhněte python.org.
- Pro Windows 11 použijte Windows Store.
Vytvoření instance Azure Managed Redis (Preview)
Pokud chcete vytvořit instanci Azure Managed Redis (Preview), přihlaste se k webu Azure Portal a vyberte Vytvořit prostředek.
Na stránce Nový zadejte do vyhledávacího pole Azure Cache for Redis.
Na stránce New Redis Cache nakonfigurujte nastavení pro novou mezipaměť.
Nastavení Zvolit hodnotu Popis Předplatné Rozevírací seznam a vyberte své předplatné. Předplatné, ve kterém se má tato nová instance Azure Managed Redis vytvořit. Skupina prostředků 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 DNS 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
.Místo Rozevírací seznam a výběr umístění Azure Managed Redis je k dispozici ve vybraných oblastech Azure. Typ mezipaměti Rozevírací seznam a vyberte úroveň výkonu a velikost mezipaměti. Úroveň určuje výkon instance Redis, zatímco velikost mezipaměti určuje paměť dostupnou k ukládání dat. Pokyny k výběru správné úrovně výkonu najdete v tématu Volba správné úrovně. Vyberte Další: Sítě a vyberte veřejný nebo privátní koncový bod.
Vyberte Další: Upřesnit.
Nakonfigurujte všechny moduly Redis, které wan 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.
Nastavte zásady clusteringu na Enterprise pro neclusterovanou mezipaměť nebo na OSS pro clusterovanou mezipaměť. Další informace o výběru zásad clusteringu najdete v tématu Zásady clusteru.
Pokud používáte aktivní geografickou replikaci, musí být nakonfigurovaná během vytváření. Další informace najdete v tématu Konfigurace aktivní geografické replikace pro instance Azure Managed Redis.
Důležité
Po vytvoření nemůžete změnit zásady clusteringu instance Azure Managed Redis (Preview). 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.
Vyberte Další: Značky a přeskočte.
Vyberte Další: Zkontrolovat a vytvořit.
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ž se stav zobrazí jako Spuštěno, je mezipaměť připravená k použití.
Vytvoření instance Azure Cache for Redis
Pokud chcete vytvořit mezipaměť, přihlaste se k webu Azure Portal. V nabídce portálu vyberte Vytvořit prostředek.
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.
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. Vyberte kartu Sítě nebo vyberte Další: Sítě.
Na kartě Sítě vyberte metodu připojení, která se má použít pro mezipaměť.
Vyberte kartu Upřesnit nebo vyberte Další: Upřesnit.
V podokně Upřesnit ověřte nebo vyberte metodu ověřování na základě následujících informací:
- 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.
(Volitelné) Vyberte kartu Značky nebo vyberte Další: Značky.
(Volitelné) Na kartě Značky zadejte název a hodnotu značky , pokud chcete zařadit prostředek mezipaměti do kategorií.
Vyberte tlačítko Zkontrolovat a vytvořit.
Na kartě Zkontrolovat a vytvořit Azure vaši konfiguraci automaticky ověří.
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 Redis. Pomocí nástroje pip
Balíč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.
Vytvoření skriptu Pythonu pro přístup k mezipaměti
Vytvořte skript Pythonu, který používá buď ID Microsoft Entra, nebo přístupové klíče pro připojení k vaší instanci Azure Managed Redis (Preview). Doporučujeme používat ID Microsoft Entra.
Použití ověřování Microsoft Entra ID v mezipaměti
Mezipaměti Azure Redis s výjimkou úrovní Enterprise a Enterprise Flash mají ve výchozím nastavení povolené ověřování Microsoft Entra. Přístupové klíče jsou ve výchozím nastavení zakázané.
Důležité
Microsoft doporučuje používat ověřování Microsoft Entra ID pro nejbezpečnější ověřování místo použití hesel nebo přístupových klíčů. Ověřování popsané v této části článku používá přístupové klíče, které vyžadují velmi vysoký stupeň důvěryhodnosti v aplikaci a nese rizika, která nejsou přítomna při použití ID Microsoft Entra. Přístup v tomto dokumentu použijte pouze v případě, že ověřování POMOCÍ ID Microsoft Entra není možné.
Na webu Azure Portal vyberte mezipaměť, do které chcete použít ověřování založené na tokenech Microsoft Entra.
V nabídce Prostředek vyberte Ověřování .
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 instanční objekt pro připojení k instanci mezipaměti.
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
Nainstalujte knihovnu MSAL (Microsoft Authentication Library). Tato knihovna umožňuje získat tokeny zabezpečení z identity Microsoftu k ověřování uživatelů.
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
Vytvořte nový textový soubor, přidejte následující skript a uložte ho jako
PythonApplication1.py
.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
.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()
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
Spusťte
PythonApplication1.py
s Pythonem. Měli byste vidět výsledky jako v následujícím příkladu:
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.
Vytvořte nový textový soubor a přidejte následující skript. Pak soubor uložte jako
PythonApplication2.py
.Nahraďte
<Your Host Name>
hodnotou z vaší instance Azure Managed Redis (Preview). Název vašeho hostitele je ve formuláři<DNS name>.<region>.redis.azure.net
.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()
Spusťte
PythonApplication2.py
s Pythonem. Měli byste vidět výsledky jako v následujícím příkladu: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
Mezipaměti Azure Redis s výjimkou úrovní Enterprise a Enterprise Flash mají ve výchozím nastavení povolené ověřování Microsoft Entra. Přístupové klíče jsou ve výchozím nastavení zakázané.
Důležité
Microsoft doporučuje používat ověřování Microsoft Entra ID pro nejbezpečnější ověřování místo použití hesel nebo přístupových klíčů. Ověřování popsané v této části článku používá přístupové klíče, které vyžadují velmi vysoký stupeň důvěryhodnosti v aplikaci a nese rizika, která nejsou přítomna při použití ID Microsoft Entra. Přístup v tomto dokumentu použijte pouze v případě, že ověřování POMOCÍ ID Microsoft Entra není možné.
Na webu Azure Portal vyberte mezipaměť, do které chcete použít ověřování založené na tokenech Microsoft Entra.
V nabídce Prostředek vyberte Ověřování .
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 instanční objekt pro připojení k instanci mezipaměti.
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
Nainstalujte knihovnu MSAL (Microsoft Authentication Library). Tato knihovna umožňuje získat tokeny zabezpečení z identity Microsoftu k ověřování uživatelů.
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
Vytvořte nový textový soubor, přidejte následující skript a uložte ho jako
PythonApplication1.py
.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
.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()
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
Spusťte
PythonApplication1.py
s Pythonem. Měli byste vidět výsledky jako v následujícím příkladu:
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.
Vytvořte nový textový soubor a přidejte následující skript. Pak soubor uložte jako
PythonApplication2.py
.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
.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()
Spusťte
PythonApplication2.py
s Pythonem. Měli byste vidět výsledky jako v následujícím příkladu:Na rozdíl od prvního příkladu, pokud platnost vašeho tokenu vyprší, tento příklad ho automaticky aktualizuje.
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ů.
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 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ů.
Odstranění skupiny prostředků
Přihlaste se k portálu Azure Portal a potom vyberte Skupiny prostředků.
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ů.
Vyberte Odstranit skupinu prostředků.
Zobrazí se výzva k potvrzení odstranění skupiny prostředků. Potvrďte odstranění zadáním názvu vaší skupiny prostředků a vyberte Odstranit.
Po chvíli se skupina prostředků včetně všech prostředků, které obsahuje, odstraní.