Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebből a cikkből megtudhatja, hogyan használhatja az Azure Managed Redis Cache-t a Python nyelvvel, és hogyan csatlakozhat a Microsoft Entra ID használatával.
Előfeltételek
- Azure-előfizetés – hozzon létre egyet ingyenesen
- Python 3.7+ nyelvi környezet telepítése
- Adja hozzá ezeket az importálásokat a projekthez és a fejlesztési környezethez.
-
redis- A Redis Python-ügyfél -
redis-entraid- Redis Microsoft Entra ID hitelesítési bővítmény -
azure-identity– Azure-hitelesítési kódtár
-
Azure Managed Redis-példány létrehozása
Először hozzon létre egy gyorsítótárat. Az Azure Portalon létrehozhat gyorsítótárat az Azure Managed Redis vagy az Azure Cache for Redis használatával. Ebben a rövid útmutatóban az Azure Managed Redist használjuk.
A gyorsítótár létrehozásakor a Microsoft Entra-azonosító alapértelmezés szerint engedélyezve van, így az a kezdetektől fogva biztonságossá válik. A gyorsítótárának nyilvános végpontot kell használnia ehhez az Így kezdje útmutatóhoz.
Ha gyorsítótárat szeretne létrehozni a portállal, kövesse az alábbi eljárások egyikét:
A gyorsítótárat tetszés szerint létrehozhatja az Azure CLI, a PowerShell használatával.
Redis-gyorsítótárhoz való csatlakozáshoz használt kód
A kódminta első részében állítsa be a kapcsolatot a gyorsítótárral.
- Az Azure Managed Redis- és Enterprise-gyorsítótárak portjai: 10000
- Azure Cache for Redis-példányok portjai: 6380
import redis
from azure.identity import DefaultAzureCredential
from redis_entraid.cred_provider import create_from_default_azure_credential
# Connection details for your cache
# Get the connection details for the Redis instance
redis_host = "contosob116.westus3.redis.azure.net"
redis_port = 10000 #For an Azure
print("🚀 Starting Azure Redis Cache connection test...")
print(f"📡 Connecting to: {redis_host}:{redis_port}")
# Validate configuration
if not redis_host or not redis_port:
print("❌ Error: Redis host and port must be configured")
exit(1)
print() # Add a new line
try:
# Create credential provider using DefaultAzureCredential for Azure Entra ID authentication
credential_provider = create_from_default_azure_credential(
("https://redis.azure.com/.default",),)
# Create a Redis client with Azure Entra ID authentication
r = redis.Redis(host=redis_host,
port=redis_port,
ssl=True,
decode_responses=True,
credential_provider=credential_provider,
socket_timeout=10,
socket_connect_timeout=10
)
Kapcsolat teszteléséhez szükséges kód
A következő szakaszban tesztelje a kapcsolatot az értéket visszaadó ping Redis paranccsalTrue.
# Ping the Redis server to test the connection
result = r.ping()
if result:
print("Ping returned: ", result)
Kód kulcs beállítása, kulcs lekérése
Ebben a szakaszban egy alapvető set és get szekvenciát használva kezdheti el a Redis cache használatát a legegyszerűbb módon az indításhoz.
# Create a simple set and get operation
result = r.set("Message", "Hello, The cache is working with Python!")
print("✅ SET Message succeeded: " + str(result))
print() # Add a new line
value = r.get("Message")
if value is not None:
print("✅ GET Message returned : " + str(value))
print() # Add a new line
else:
print("⚠️ GET Message returned None")
print() # Add a new line
print("🎉 All Redis operations completed successfully!")
print() # Add a new line
A kód futtatása előtt fel kell vennie magát Redis-felhasználóként a gyorsítótárba.
Emellett engedélyeznie kell az Azure-hoz való csatlakozást a parancssorból az Azure-parancssor vagy az Azure fejlesztői parancssor (azd) használatával.
Felhasználókat vagy rendszerfelelőst is hozzá kell adnia a gyorsítótárhoz. Adjon hozzá bárkit, aki felhasználóként futtathatja a programot a Redis cache-ben.
Az eredmény így néz ki:
C:\utils\python-quickstart>python quickstart-amr.py
🚀 Starting Azure Redis Cache connection test...
📡 Connecting to: contosob116.westus3.redis.azure.net:10000
✅ Ping returned : True
✅ SET Message succeeded: True
✅ GET Message returned : Hello, The cache is working with Python!
🎉 All Redis operations completed successfully!
🔐 Redis connection closed
Itt teljes egészében láthatja ezt a kódmintát. A kód az egyszerűség kedvéért kihagyott hibaellenőrzést tartalmaz a korábbi kódmagyarázatokból. Az utolsó lépés a gyorsítótárhoz való kapcsolat lezárása.
# Python Quickstart using Azure Entra ID authentication
# Azure Managed Redis cache that you created using the Azure portal, or CLI
# This script demonstrates secure connection using Microsoft Entra ID authentication
# This script demonstrates secure connection using the default Azure credential provider
# You should be a user on the cache and logged in to Azure CLI with the same account using `az login`
import redis
from azure.identity import DefaultAzureCredential
from redis_entraid.cred_provider import create_from_default_azure_credential
# Connection details for your cache
# Get the connection details for the Redis instance
redis_host = "<host-url>" # Replace with your cache info
redis_port = <port number> # Replace with your cache info
print("🚀 Starting Azure Redis Cache connection test...")
print(f"📡 Connecting to: {redis_host}:{redis_port}")
# Validate configuration
if not redis_host or not redis_port:
print("❌ Error: Redis host and port must be configured")
exit(1)
print() # Add a new line
try:
# Create credential provider using DefaultAzureCredential for Azure Entra ID authentication
credential_provider = create_from_default_azure_credential(
("https://redis.azure.com/.default",),)
# Create a Redis client with Azure Entra ID authentication
r = redis.Redis(host=redis_host,
port=redis_port,
ssl=True,
decode_responses=True,
credential_provider=credential_provider,
socket_timeout=10,
socket_connect_timeout=10
)
# Test connection
result = r.ping()
print("✅ Ping returned : " + str(result))
print() # Add a new line
# Create a simple set and get operation
result = r.set("Message", "Hello, The cache is working with Python!")
print("✅ SET Message succeeded: " + str(result))
print() # Add a new line
value = r.get("Message")
if value is not None:
print("✅ GET Message returned : " + str(value))
print() # Add a new line
else:
print("⚠️ GET Message returned None")
print() # Add a new line
print("🎉 All Redis operations completed successfully!")
print() # Add a new line
except redis.ConnectionError as e:
print(f"❌ Connection error: {e}")
print("💡 Check if Redis host and port are correct, and ensure network connectivity")
print() # Add a new line
except redis.AuthenticationError as e:
print(f"❌ Authentication error: {e}")
print("💡 Check if Azure Entra ID authentication is properly configured")
print() # Add a new line
except redis.TimeoutError as e:
print(f"❌ Timeout error: {e}")
print("💡 Check network latency and Redis server performance")
print() # Add a new line
except Exception as e:
print(f"❌ Unexpected error: {e}")
if "999" in str(e):
print("💡 Error 999 typically indicates a network connectivity issue or firewall restriction")
print(" - Verify the Redis hostname is correct")
print(" - Verify that you have logged in with Az CLI")
print(" - Ensure the Redis cache is running and accessible")
print() # Add a new line
finally:
# Clean up connection if it exists
if 'r' in locals():
try:
r.close()
print("🔐 Redis connection closed")
except Exception as e:
print(f"❌ Error closing connection: {e}")
Erőforrások tisztítása
Ha továbbra is használni szeretné a cikkben létrehozott erőforrásokat, tartsa meg az erőforráscsoportot.
Ellenkező esetben, ha végzett az erőforrásokkal, törölheti a létrehozott Azure-erőforráscsoportot a díjak elkerülése érdekében.
Fontos
Egy erőforráscsoport törlése visszafordíthatatlan. Az erőforráscsoport törlésekor a benne foglalt összes erőforrás véglegesen törlődik. Figyeljen arra, hogy ne töröljön véletlenül erőforráscsoportot vagy erőforrásokat. Ha olyan meglévő erőforráscsoportban hozta létre az erőforrásokat, amely a megtartani kívánt erőforrásokat tartalmazza, az erőforráscsoport törlése helyett egyenként törölheti az egyes erőforrásokat.
Erőforráscsoport törlése
Jelentkezzen be az Azure Portalra, és válassza az Erőforráscsoportok elemet.
Válassza ki a törölni kívánt erőforráscsoportot.
Ha sok erőforráscsoport van, használja a Szűrő bármely mezőhöz... mezőt, írja be a cikkhez létrehozott erőforráscsoport nevét. Válassza ki az erőforráscsoportot az eredménylistában.
Válassza az Erőforráscsoport törlése lehetőséget.
A rendszer az erőforráscsoport törlésének megerősítését kéri. A megerősítéshez írja be az erőforráscsoport nevét, és válassza a Törlést.
A rendszer néhány pillanaton belül törli az erőforráscsoportot és annak erőforrásait.