Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel erfahren Sie, wie Sie einen Azure Redis-Cache mit der Python-Sprache verwenden und mithilfe der Microsoft Entra-ID eine Verbindung herstellen.
Voraussetzungen
- Azure-Abonnement – Erstellen eines kostenlosen Kontos
- Installieren der Python 3.7+- Sprachumgebung
- Fügen Sie diese Importe aus Ihrem Projekt und ihrer Entwicklungsumgebung hinzu.
redis
- Der Redis Python-Clientredis-entraid
- Redis Microsoft Entra ID-Authentifizierungserweiterungazure-identity
– Azure-Authentifizierungsbibliothek
Erstellen einer Azure Managed Redis-Instanz
Erstellen Sie zunächst einen Cache. Sie können einen Cache mithilfe von Azure Managed Redis oder Azure Cache für Redis mithilfe des Azure-Portals erstellen. In dieser Schnellstartanleitung verwenden wir Azure Managed Redis.
Wenn Sie den Cache erstellen, ist die Microsoft Entra-ID standardmäßig aktiviert, sodass sie von Anfang an sicher ist. Ihr Cache muss auch einen öffentlichen Endpunkt für diese Schnellstartanleitung verwenden.
Führen Sie zum Erstellen eines Caches mit dem Portal eine der folgenden Verfahren aus:
Optional können Sie einen Cache mit Azure CLI, PowerShell, je nachdem, was Sie bevorzugen, erstellen.
Code zum Herstellen einer Verbindung mit einem Redis-Cache
Legen Sie im ersten Teil des Codebeispiels Ihre Verbindung mit dem Cache fest.
- Ports für azure Managed Redis und Enterprise Caches: 10000
- Ports für Azure Cache für Redis-Instanzen: 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
)
Code zum Testen einer Verbindung
Testen Sie im nächsten Abschnitt die Verbindung mit dem Befehl ping
"Redis", der den True
Wert zurückgibt.
# Ping the Redis server to test the connection
result = r.ping()
if result:
print("Ping returned: ", result)
Code legt einen Schlüssel fest, ruft einen Schlüssel ab
Verwenden Sie in diesem Abschnitt eine einfache set
und get
Sequenz, um den Redis-Cache auf möglichst einfache Weise zu nutzen.
# 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
Bevor Sie diesen Code ausführen können, müssen Sie sich selbst als Redis-Benutzer zum Cache hinzufügen.
Sie müssen Ihre Verbindung mit Azure auch über die Befehlszeile oder über die Azure-Entwickler-Befehlszeile (azd) autorisieren.
Sie sollten ihrem Cache auch Benutzer oder einen Systemprinzipal hinzufügen. Fügen Sie alle Benutzer hinzu, die das Programm möglicherweise als Benutzer im Redis-Cache ausführen.
Das Ergebnis sieht wie folgt aus:
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
Hier sehen Sie dieses Codebeispiel vollständig. Der Code enthält einige Fehlerüberprüfungen, die aus den früheren Codeerklärungen aus Gründen der Einfachheit weggelassen wurden. Der letzte Schritt besteht darin, die Verbindung mit dem Cache zu schließen.
# 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}")
Bereinigen von Ressourcen
Wenn Sie die in diesem Artikel erstellten Ressourcen weiterhin verwenden möchten, behalten Sie die Ressourcengruppe bei.
Wenn Sie die Ressourcen nicht mehr benötigen, können Sie die erstellte Azure-Ressourcengruppe ansonsten löschen, um Kosten zu vermeiden.
Von Bedeutung
Das Löschen einer Ressourcengruppe kann nicht rückgängig gemacht werden. Beim Löschen einer Ressourcengruppe werden alle darin enthaltenen Ressourcen unwiderruflich gelöscht. Achten Sie daher darauf, dass Sie nicht versehentlich die falsche Ressourcengruppe oder die falschen Ressourcen löschen. Falls Sie die Ressourcen in einer vorhandenen Ressourcengruppe erstellt haben, die Ressourcen enthält, die Sie behalten wollen, können Sie jede Ressource einzeln löschen, statt die Ressourcengruppe zu löschen.
So löschen Sie eine Ressourcengruppe
Melden Sie sich beim Azure-Portal an, und wählen Sie anschließend Ressourcengruppen aus.
Wählen Sie die Ressourcengruppe aus, die Sie löschen möchten.
Wenn viele Ressourcengruppen vorhanden sind, verwenden Sie das Feld Nach einem beliebigen Feld filtern..., und geben Sie den Namen Ihrer Ressourcengruppe ein, die Sie für diesen Artikel erstellt haben. Wählen Sie die Ressourcengruppe in der Ergebnisliste aus.
Wählen Sie die Option Ressourcengruppe löschen.
Sie werden aufgefordert, das Löschen der Ressourcengruppe zu bestätigen. Geben Sie den Namen Ihrer Ressourcengruppe ein, und wählen Sie Löschen aus.
Daraufhin werden die Ressourcengruppe und alle darin enthaltenen Ressourcen gelöscht.