Quickstart: Azure Redis gebruiken in Python
In deze quickstart neemt u Azure Managed Redis (preview) of Azure Cache voor Redis op in een Python-script om toegang te krijgen tot een beveiligde, toegewezen cache die toegankelijk is vanuit elke toepassing in Azure.
Ga naar de code op GitHub
Als u rechtstreeks naar de code wilt gaan, raadpleegt u de Python-quickstart op GitHub.
Vereisten
- Azure-abonnement: u kunt een gratis abonnement nemen
- Python 3
- Download voor macOS of Linux van python.org.
- Voor Windows 11 gebruikt u de Windows Store.
Een exemplaar van Azure Managed Redis (preview) maken
Als u een exemplaar van Azure Managed Redis (preview) wilt maken, meldt u zich aan bij Azure Portal en selecteert u Een resource maken.
Typ op de pagina Nieuw in het zoekvak Azure Cache voor Redis.
Configureer op de pagina Nieuwe Redis-cache de instellingen voor de nieuwe cache.
Selecteer Volgende: Netwerken en selecteer een openbaar of privé-eindpunt.
Selecteer Volgende: Geavanceerd.
Configureer alle Redis-modules die u wilt toevoegen aan het exemplaar.
Standaard voor een nieuwe beheerde cache:
- Microsoft Entra-id is ingeschakeld.
- Verificatie van toegangssleutels is uitgeschakeld om veiligheidsredenen.
Belangrijk
Voor optimale beveiliging wordt u aangeraden Microsoft Entra ID met beheerde identiteiten te gebruiken om aanvragen tegen uw cache te autoriseren, indien mogelijk. Autorisatie met behulp van Microsoft Entra ID en beheerde identiteiten biedt superieure beveiliging en gebruiksgemak ten opzichte van autorisatie van gedeelde toegangssleutels. Zie Microsoft Entra ID gebruiken voor cacheverificatie voor meer informatie over het gebruik van beheerde identiteiten met uw cache.
Stel clusterbeleid in op Enterprise voor een niet-geclusterde cache of op OSS voor een geclusterde cache. Zie Clusterbeleid voor meer informatie over het kiezen van Clusterbeleid.
Als u actieve geo-replicatie gebruikt, moet deze worden geconfigureerd tijdens het maken. Zie Actieve geo-replicatie configureren voor Azure Managed Redis-exemplaren voor meer informatie.
Belangrijk
U kunt het clusterbeleid van een Azure Managed Redis-exemplaar (preview) niet wijzigen nadat u het hebt gemaakt. Als u RediSearch gebruikt , is het clusterbeleid voor ondernemingen vereist en
NoEviction
wordt het enige verwijderingsbeleid ondersteund.Belangrijk
Als u dit cache-exemplaar in een geo-replicatiegroep gebruikt, kan verwijderingsbeleid niet worden gewijzigd nadat het exemplaar is gemaakt. Zorg ervoor dat u het verwijderingsbeleid van uw primaire knooppunten kent voordat u de cache maakt. Zie Vereisten voor actieve geo-replicatie voor meer informatie over actieve geo-replicatie.
Belangrijk
U kunt modules niet wijzigen nadat u een cache-exemplaar hebt gemaakt. Modules moeten zijn ingeschakeld op het moment dat u een Azure Cache voor Redis exemplaar maakt. Er is geen optie om de configuratie van een module in te schakelen nadat u een cache hebt gemaakt.
Selecteer Volgende: Tags en overslaan.
Selecteer Volgende: Beoordelen en maken.
Controleer de instellingen en selecteer Maken.
Het duurt enkele minuten voordat het Redis-exemplaar is gemaakt. U kunt de voortgang controleren op de overzichtspagina van Azure Managed Redis. Als u bij Status Wordt uitgevoerd ziet staan, kunt u de cache gebruiken.
Een instantie van Azure Cache voor Redis maken
Meld u aan bij Azure Portal om een cache te maken. Selecteer een resource maken in het portalmenu.
Voer in het deelvenster Aan de slag Azure Cache voor Redis in de zoekbalk in. Zoek Azure Cache voor Redis in de zoekresultaten en selecteer Vervolgens Maken.
Configureer in het deelvenster Nieuwe Redis Cache op het tabblad Basis de volgende instellingen voor uw cache:
Instelling Actie Beschrijving Abonnement Selecteer uw Azure-abonnement. Het abonnement dat moet worden gebruikt om het nieuwe exemplaar van Azure Cache voor Redis te maken. Resourcegroep Selecteer een resourcegroep of selecteer Nieuwe maken en voer een nieuwe resourcegroepnaam in. Een naam voor de resourcegroep waarin u uw cache en andere resources wilt maken. Door al uw app-resources in één resourcegroep te plaatsen, kunt u ze eenvoudig beheren of verwijderen. DNS-naam Voer een unieke naam in. De cachenaam moet een tekenreeks van 1 tot 63 tekens zijn die alleen cijfers, letters en afbreekstreepjes bevat. De naam moet beginnen en eindigen met een getal of letter en mag geen opeenvolgende afbreekstreepjes bevatten. De hostnaam van uw cache-exemplaar is \<DNS name>.redis.cache.windows.net
.Location Selecteer een locatie. Een Azure-regio in de buurt van andere services die gebruikmaken van uw cache. Cache-SKU Selecteer een SKU. De SKU bepaalt de grootte, prestaties en functieparameters die beschikbaar zijn voor de cache. Zie Azure Cache voor Redis overzicht voor meer informatie. Cachegrootte Selecteer een cachegrootte. Zie Azure Cache voor Redis overzicht voor meer informatie. Selecteer het tabblad Netwerken of selecteer Volgende: Netwerken.
Selecteer op het tabblad Netwerken een connectiviteitsmethode die u voor de cache wilt gebruiken.
Selecteer het tabblad Geavanceerd of selecteer Volgende: Geavanceerd.
Controleer of selecteer in het deelvenster Geavanceerd een verificatiemethode op basis van de volgende informatie:
- Microsoft Entra Authentication is standaard ingeschakeld voor een nieuwe Basic-, Standard- of Premium-cache en toegangssleutelsverificatie is uitgeschakeld.
- Voor Basic- of Standard-caches kunt u de selectie voor een niet-TLS-poort kiezen.
- Voor Standard- en Premium-caches kunt u ervoor kiezen om beschikbaarheidszones in te schakelen. U kunt beschikbaarheidszones niet uitschakelen nadat de cache is gemaakt.
- Voor een Premium-cache configureert u de instellingen voor niet-TLS-poort, clustering, beheerde identiteit en gegevenspersistentie.
Belangrijk
Voor optimale beveiliging wordt u aangeraden Microsoft Entra ID met beheerde identiteiten te gebruiken om aanvragen tegen uw cache te autoriseren, indien mogelijk. Autorisatie met behulp van Microsoft Entra ID en beheerde identiteiten biedt superieure beveiliging en gebruiksgemak ten opzichte van autorisatie van gedeelde toegangssleutels. Zie Microsoft Entra ID gebruiken voor cacheverificatie voor meer informatie over het gebruik van beheerde identiteiten met uw cache.
(Optioneel) Selecteer het tabblad Tags of selecteer Volgende: Tags.
(Optioneel) Voer op het tabblad Tags een tagnaam en -waarde in als u de cacheresource wilt categoriseren.
Selecteer de knop Controleren en maken.
Op het tabblad Controleren en maken valideert Azure uw configuratie automatisch.
Nadat het groene bericht Validatie is geslaagd , selecteert u Maken.
Een nieuwe cache-implementatie vindt meer dan enkele minuten plaats. U kunt de voortgang van de implementatie controleren in het deelvenster Azure Cache voor Redis Overzicht. Wanneer de status Wordt uitgevoerd, is de cache gereed voor gebruik.
Redis-py-bibliotheek installeren
Redis-py is een Python-interface voor Redis. Gebruik het hulpprogramma pip
Python-pakketten om het redis-py
pakket te installeren vanaf een opdrachtprompt.
Het volgende voorbeeld dat voor Python 3 wordt gebruikt pip3
om te installeren redis-py
in Windows 11 vanaf een opdrachtprompt administrator.
Een Python-script maken voor toegang tot uw cache
Maak een Python-script waarin microsoft Entra-id of toegangssleutels worden gebruikt om verbinding te maken met uw Azure Managed Redis-exemplaar (preview). U wordt aangeraden Microsoft Entra ID te gebruiken.
Microsoft Entra ID-verificatie gebruiken in uw cache
Voor Azure Redis-caches, met uitzondering van Enterprise- en Enterprise Flash-lagen, is Microsoft Entra-verificatie standaard ingeschakeld. Toegangssleutels zijn standaard uitgeschakeld.
Belangrijk
Microsoft raadt het gebruik van Microsoft Entra ID-verificatie aan voor de veiligste verificatie-ervaring in plaats van wachtwoorden of toegangssleutels te gebruiken. De verificatie die in dit gedeelte van het artikel wordt beschreven, maakt gebruik van toegangssleutels, waarvoor een zeer hoge mate van vertrouwen in de toepassing is vereist en risico's met zich meebrengt die niet aanwezig zijn bij het gebruik van Microsoft Entra-id. Gebruik de methode in dit document alleen als Verificatie van Microsoft Entra-id's niet haalbaar is.
Selecteer in Azure Portal de cache waar u verificatie op basis van Microsoft Entra-tokens wilt gebruiken.
Selecteer Verificatie in het menu Resource.
Selecteer Lid selecteren en voer de naam in van een geldige gebruiker. De gebruiker die u invoert, wordt standaard automatisch toegangsbeleid voor gegevenseigenaar toegewezen wanneer u Opslaan selecteert. U kunt ook een beheerde identiteit of service-principal invoeren om verbinding te maken met uw cache-exemplaar.
Zie de referentiepagina's voor identiteit voor informatie over het gebruik van Microsoft Entra ID met Azure CLI.
De Microsoft Authentication Library installeren
Installeer de Microsoft Authentication Library (MSAL). Met deze bibliotheek kunt u beveiligingstokens verkrijgen van microsoft-identiteit om gebruikers te verifiëren.
U kunt de Python Azure Identity-clientbibliotheek gebruiken die MSAL gebruikt om ondersteuning voor tokenverificatie te bieden. Installeer deze bibliotheek met behulp van
pip
:
pip install azure-identity
Een Python-script maken met behulp van Microsoft Entra-id
Maak een nieuw tekstbestand, voeg het volgende script toe en sla het bestand op als
PythonApplication1.py
.Vervang
<Your Host Name>
door de waarde van uw Azure Cache voor Redis exemplaar. De hostnaam is van het formulier<DNS name>.<region>.redis.azure.net
.Vervang
<Your Username>
door de waarden van uw Microsoft Entra ID-gebruiker.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()
Voordat u uw Python-code uitvoert vanuit een terminal, moet u ervoor zorgen dat u de terminal autoriseert voor het gebruik van Microsoft Entra-id.
azd auth login
Uitvoeren
PythonApplication1.py
met Python. Als het goed is, ziet u resultaten zoals in het volgende voorbeeld:
Een Python-script maken met behulp van herauthentication
Microsoft Entra ID-toegangstokens hebben een beperkte levensduur, gemiddeld 75 minuten. Als u een verbinding met uw cache wilt behouden, moet u het token vernieuwen. In dit voorbeeld ziet u hoe u dit doet met behulp van Python.
Maak een nieuw tekstbestand en voeg het volgende script toe. Sla het bestand vervolgens op als
PythonApplication2.py
.Vervang
<Your Host Name>
door de waarde van uw Instantie van Azure Managed Redis (preview). De hostnaam is van het formulier<DNS name>.<region>.redis.azure.net
.Vervang
<Your Username>
door de waarden van uw Microsoft Entra ID-gebruiker.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()
Uitvoeren
PythonApplication2.py
met Python. Als het goed is, ziet u resultaten zoals in het volgende voorbeeld:In tegenstelling tot het eerste voorbeeld, wordt het in dit voorbeeld automatisch vernieuwd als uw token verloopt.
Een Python-script maken voor toegang tot uw cache
Maak een Python-script waarin microsoft Entra-id of toegangssleutels worden gebruikt om verbinding te maken met uw Redis-exemplaar. U wordt aangeraden Microsoft Entra ID te gebruiken.
Microsoft Entra ID-verificatie gebruiken in uw cache
Voor Azure Redis-caches, met uitzondering van Enterprise- en Enterprise Flash-lagen, is Microsoft Entra-verificatie standaard ingeschakeld. Toegangssleutels zijn standaard uitgeschakeld.
Belangrijk
Microsoft raadt het gebruik van Microsoft Entra ID-verificatie aan voor de veiligste verificatie-ervaring in plaats van wachtwoorden of toegangssleutels te gebruiken. De verificatie die in dit gedeelte van het artikel wordt beschreven, maakt gebruik van toegangssleutels, waarvoor een zeer hoge mate van vertrouwen in de toepassing is vereist en risico's met zich meebrengt die niet aanwezig zijn bij het gebruik van Microsoft Entra-id. Gebruik de methode in dit document alleen als Verificatie van Microsoft Entra-id's niet haalbaar is.
Selecteer in Azure Portal de cache waar u verificatie op basis van Microsoft Entra-tokens wilt gebruiken.
Selecteer Verificatie in het menu Resource.
Selecteer Lid selecteren en voer de naam in van een geldige gebruiker. De gebruiker die u invoert, wordt standaard automatisch toegangsbeleid voor gegevenseigenaar toegewezen wanneer u Opslaan selecteert. U kunt ook een beheerde identiteit of service-principal invoeren om verbinding te maken met uw cache-exemplaar.
Zie de referentiepagina's voor identiteit voor informatie over het gebruik van Microsoft Entra ID met Azure CLI.
De Microsoft Authentication Library installeren
Installeer de Microsoft Authentication Library (MSAL). Met deze bibliotheek kunt u beveiligingstokens verkrijgen van microsoft-identiteit om gebruikers te verifiëren.
U kunt de Python Azure Identity-clientbibliotheek gebruiken die MSAL gebruikt om ondersteuning voor tokenverificatie te bieden. Installeer deze bibliotheek met behulp van
pip
:
pip install azure-identity
Een Python-script maken met behulp van Microsoft Entra-id
Maak een nieuw tekstbestand, voeg het volgende script toe en sla het bestand op als
PythonApplication1.py
.Vervang
<Your Host Name>
door de waarde van uw Azure Cache voor Redis exemplaar. De hostnaam is van het formulier<DNS name>.redis.cache.windows.net
.Vervang
<Your Username>
door de waarden van uw Microsoft Entra ID-gebruiker.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()
Voordat u uw Python-code uitvoert vanuit een terminal, moet u ervoor zorgen dat u de terminal autoriseert voor het gebruik van Microsoft Entra-id.
azd auth login
Uitvoeren
PythonApplication1.py
met Python. Als het goed is, ziet u resultaten zoals in het volgende voorbeeld:
Een Python-script maken met behulp van herauthentication
Microsoft Entra ID-toegangstokens hebben een beperkte levensduur, gemiddeld 75 minuten. Als u een verbinding met uw cache wilt behouden, moet u het token vernieuwen. In dit voorbeeld ziet u hoe u dit doet met behulp van Python.
Maak een nieuw tekstbestand en voeg het volgende script toe. Sla het bestand vervolgens op als
PythonApplication2.py
.Vervang
<Your Host Name>
door de waarde van uw Azure Cache voor Redis exemplaar. De hostnaam is van het formulier<DNS name>.redis.cache.windows.net
.Vervang
<Your Username>
door de waarden van uw Microsoft Entra ID-gebruiker.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()
Uitvoeren
PythonApplication2.py
met Python. Als het goed is, ziet u resultaten zoals in het volgende voorbeeld:In tegenstelling tot het eerste voorbeeld, wordt het in dit voorbeeld automatisch vernieuwd als uw token verloopt.
Resources opschonen
Als u de resources wilt blijven gebruiken die u in dit artikel hebt gemaakt, moet u de resourcegroep behouden.
Als u klaar bent met de resources, kunt u de Azure-resourcegroep verwijderen die u hebt gemaakt om kosten te voorkomen.
Belangrijk
Het verwijderen van een resourcegroep kan niet ongedaan worden gemaakt. Wanneer u een resourcegroep verwijdert, worden alle resources in de groep definitief verwijderd. Zorg ervoor dat u niet per ongeluk de verkeerde resourcegroep of resources verwijdert. Als u de resources in een bestaande resourcegroep hebt gemaakt die resources bevat die u wilt behouden, kunt u elke resource afzonderlijk verwijderen in plaats van de resourcegroep te verwijderen.
Een resourcegroep verwijderen
Meld u aan bij Azure Portal en selecteer vervolgens Resourcegroepen.
Selecteer de resourcegroep die u wilt verwijderen.
Als er veel resourcegroepen zijn, gebruikt u het vak Filter voor een veld... en typt u de naam van de resourcegroep die u voor dit artikel hebt gemaakt. Selecteer de resourcegroep in de lijst met resultaten.
Selecteer Resourcegroep verwijderen.
U wordt gevraagd om het verwijderen van de resourcegroep te bevestigen. Typ ter bevestiging de naam van de resourcegroep. Selecteer vervolgens Verwijderen.
Na enkele ogenblikken worden de resourcegroep en alle bijbehorende resources verwijderd.