Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede Azure Yönetilen Redis önbelleğini Python diliyle kullanmayı ve Microsoft Entra Kimliğini kullanarak bağlanmayı öğreneceksiniz.
Önkoşullar
- Azure aboneliği - ücretsiz bir abonelik oluşturun
- Python 3.7+ dil ortamını yükleme
- Projenize ve geliştirme ortamınıza bu ithalatları ekleyin.
-
redis- Redis Python istemcisi -
redis-entraid- Redis Microsoft Entra Id kimlik doğrulama uzantısı -
azure-identity- Azure kimlik doğrulama kitaplığı
-
Azure Yönetilen Redis örneği oluştur
İlk olarak bir önbellek oluşturun. Azure portalını kullanarak Azure Yönetilen Redis'i veya Redis için Azure Cache'i kullanarak önbellek oluşturabilirsiniz. Bu Hızlı Başlangıçta Azure Yönetilen Redis'i kullanacağız.
Önbelleği oluşturduğunuzda, Microsoft Entra Id varsayılan olarak etkindir ve başlangıçtan itibaren güvenli hale getirir. Önbelleğiniz bu Hızlı Başlangıç için genel uç nokta da kullanmalıdır.
Portal ile önbellek oluşturmak için şu yordamlardan birini izleyin:
- Azure Yönetilen Redis
- Redis için Azure Cache
İsteğe bağlı olarak, Azure CLI, PowerShell kullanarak önbellek oluşturabilirsiniz.hangisini tercih ettiyseniz.
Redis önbelleğine bağlanma kodu
Kod örneğinin ilk bölümünde önbellekle bağlantınızı ayarlayın.
- Azure Managed Redis ve Kurumsal önbellekler için portlar: 10000
- Redis için Azure Cache örnekleri için bağlantı noktaları: 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
)
Bağlantıyı test etmek için kod
Sonraki bölümde, değeri döndüren Redis komutunu ping kullanarak bağlantıyı test edin True .
# Ping the Redis server to test the connection
result = r.ping()
if result:
print("Ping returned: ", result)
Kod anahtarı ayarlama, anahtar alma
Bu bölümde, Redis önbelleğini kullanmaya başlamak için en basit bir temel set ve get sırasını kullanın.
# 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
Bu kodu çalıştırabilmeniz için önce kendinizi önbelleğe Redis kullanıcısı olarak eklemeniz gerekir.
Ayrıca Azure komut satırını veya Azure geliştirici komut satırını (azd) kullanarak komut satırından Azure bağlantınızı yetkilendirmeniz gerekir.
Önbelleğinize kullanıcı veya Sistem sorumlusu da eklemeniz gerekir. Programı redis önbelleğinde kullanıcı olarak çalıştırabilecek herkesi ekleyin.
Sonuç şöyle görünür:
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
Burada, bu kod örneğini tamamen görebilirsiniz. Kod, basitlik için önceki kod açıklamalarından atlanmış bazı hata denetimi içeriyor. Son adım, önbellek bağlantısını kapatmaktır.
# 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}")
Kaynakları temizle
Bu makalede oluşturduğunuz kaynakları kullanmaya devam etmek istiyorsanız kaynak grubunu koruyun.
Aksi takdirde, kaynaklarla işiniz bittiyse ücretlerden kaçınmak için oluşturduğunuz Azure kaynak grubunu silebilirsiniz.
Önemli
Bir kaynak grubunu silmek geri alınamaz. Kaynak grubunu sildiğinizde, içindeki tüm kaynaklar kalıcı olarak silinir. Yanlış kaynak grubunu veya kaynakları yanlışlıkla silmediğinizden emin olun. Tutmak istediğiniz kaynakları içeren mevcut bir kaynak grubunun içinde kaynakları oluşturduysanız, kaynak grubunu silmek yerine her kaynağı tek tek silebilirsiniz.
Kaynak grubunu silmek için
Azure portalında oturum açın ve Kaynak grupları’nı seçin.
Silmek istediğiniz kaynak grubunu seçin.
Çok sayıda kaynak grubu varsa Herhangi bir alan için filtre uygula... kutusunu kullanın, bu makale için oluşturduğunuz kaynak grubunuzun adını yazın. Sonuçlar listesinden kaynak grubunu seçin.
Kaynak grubunu sil seçeneğini seçin.
Kaynak grubunun silinmesini onaylamanız istenir. Onaylamak için kaynak grubunuzun adını yazın ve ardından Sil’i seçin.
Birkaç dakika sonra kaynak grubu ve bu gruptaki kaynakların tümü silinir.