Megosztás a következőn keresztül:


Rövid útmutató: Python-alkalmazás létrehozása az Azure Managed Redis használatával

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

  1. Jelentkezzen be az Azure Portalra, és válassza az Erőforráscsoportok elemet.

  2. 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.

    Képernyőkép a munkaablakban törölni kívánt erőforráscsoportok listájáról.

  3. Válassza az Erőforráscsoport törlése lehetőséget.

  4. 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.

    Képernyőkép egy űrlapról, amely megköveteli az erőforrás nevét a törlés megerősítéséhez.

A rendszer néhány pillanaton belül törli az erőforráscsoportot és annak erőforrásait.