Delen via


Quickstart: Azure Cache voor Redis gebruiken met een Python-app

In deze quickstart neemt u Azure Cache voor Redis op in een Python-script voor toegang tot een beveiligde, toegewezen cache die toegankelijk is vanuit elke toepassing in Azure.

Ga naar de code

In dit artikel wordt beschreven hoe u een Python-app maakt en vervolgens de code wijzigt zodat deze eindigt op een werkende voorbeeld-app.

Als u rechtstreeks naar de code wilt gaan, raadpleegt u het Python-quickstartvoorbeeld op GitHub.

Vereisten

Een cache maken

  1. Meld u aan bij Azure Portal om een cache te maken. Selecteer een resource maken in het portalmenu.

    Sceenshot met de optie Een resource maken gemarkeerd in het linkernavigatiedeelvenster in Azure Portal.

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

    Schermopname van Azure Marketplace met Azure Cache voor Redis in het zoekvak en de knop Maken is gemarkeerd.

  3. 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.
  4. Selecteer het tabblad Netwerken of selecteer Volgende: Netwerken.

  5. Selecteer op het tabblad Netwerken een connectiviteitsmethode die u voor de cache wilt gebruiken.

  6. Selecteer het tabblad Geavanceerd of selecteer Volgende: Geavanceerd.

  7. Controleer of selecteer in het deelvenster Geavanceerd een verificatiemethode op basis van de volgende informatie:

    Schermopname van het deelvenster Geavanceerd en de beschikbare opties die u kunt selecteren.

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

  8. (Optioneel) Selecteer het tabblad Tags of selecteer Volgende: Tags.

  9. (Optioneel) Voer op het tabblad Tags een tagnaam en -waarde in als u de cacheresource wilt categoriseren.

  10. Selecteer de knop Controleren en maken.

    Op het tabblad Controleren en maken valideert Azure uw configuratie automatisch.

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

De redis-py-bibliotheek installeren

Redis-py is een Python-interface voor Azure Cache voor Redis. Gebruik het hulpprogramma Python-pakketten om het redis-py-pakket op een opdrachtregel te installeren.

In het volgende voorbeeld wordt python 3 gebruikt pip3 om redis-py te installeren in Windows 11 in een opdrachtpromptvenster voor beheerders.

Schermopname van een terminal met een installatie van de interface redis-py voor Azure Cache voor Redis.

Een Python-script maken voor toegang tot uw cache

Maak een Python-script dat gebruikmaakt van Microsoft Entra ID of toegangssleutels om verbinding te maken met Azure Cache voor Redis. U wordt aangeraden Microsoft Entra ID te gebruiken.

Microsoft Entra ID-verificatie inschakelen in uw cache

Controleer eerst of Microsoft Entra-verificatie is ingeschakeld voor een bestaande cache. Als dit niet het probleem is, voert u de volgende stappen uit om Microsoft Entra-verificatie in te schakelen. U wordt aangeraden Microsoft Entra ID te gebruiken voor verificatie in uw toepassingen.

  1. Selecteer in Azure Portal het Azure Cache voor Redis exemplaar waar u verificatie op basis van Microsoft Entra-tokens wilt gebruiken.

  2. Selecteer Verificatie in het servicemenu onder Instellingen.

  3. Schakel in het deelvenster Verificatie in of het selectievakje Microsoft Entra-verificatie inschakelen is ingeschakeld. Als dat het is, kunt u verdergaan met de volgende sectie.

  4. Schakel anders het selectievakje Microsoft Entra-verificatie inschakelen in. Voer vervolgens de naam in van een geldige gebruiker. Selecteer Opslaan. De gebruikersnaam die u invoert, wordt automatisch het toegangsbeleid van de gegevenseigenaar toegewezen.

    U kunt ook een beheerde identiteit of een service-principal invoeren om verbinding te maken met uw cache.

    Schermopname van Verificatie geselecteerd in het servicemenu en het selectievakje Microsoft Entra-verificatie inschakelen ingeschakeld.

  5. In een dialoogvenster wordt u gevraagd of u de configuratie wilt bijwerken en u wordt geïnformeerd dat het enkele minuten duurt om de update te voltooien. Selecteer Ja.

    Belangrijk

    Wanneer de inschakeling is voltooid, worden de knooppunten in de cache opnieuw opgestart om de nieuwe configuratie te laden. U wordt aangeraden deze bewerking tijdens uw standaardonderhoudsvenster of buiten uw piekuren te voltooien. Het proces kan tot 30 minuten duren.

Zie de identiteitsreferentiepagina's voor informatie over het gebruik van Microsoft Entra-id met de Azure CLI.

Microsoft Authentication Library installeren

Microsoft Authentication Library (MSAL) haalt beveiligingstokens op van het Microsoft Identity Platform om gebruikers te verifiëren.

MSAL installeren:

  1. Installeer MSAL voor Python.

  2. Installeer de Python Azure Identity-clientbibliotheek. De bibliotheek maakt gebruik van MSAL 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

  1. Maak een tekstbestand. Sla het bestand op als PythonApplication1.py.

  2. Voeg in PythonApplication1.py het volgende script toe en wijzig het.

    In het script:

    • Vervang <Your Host Name> door de waarde van uw Azure Cache voor Redis exemplaar. De hostnaam heeft het formulier <DNS name>.redis.cache.windows.net.
    • Vervang <Your Username> door de waarde voor 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()
    
  3. Voordat u uw Python-code uitvoert in een terminal, moet u de terminal machtigen om Microsoft Entra-id te gebruiken:

    azd auth login

  4. Voer het PythonApplication1.py-bestand uit met behulp van Python. Controleer of de uitvoer er ongeveer uitziet als in dit voorbeeld:

    Schermopname van een terminal met een Python-script voor het testen van cachetoegang.

Een Python-script maken met behulp van verificatie opnieuw

Een Microsoft Entra ID-toegangstoken heeft een beperkte levensduur van ongeveer 75 minuten. Als u een verbinding met uw cache wilt onderhouden, moet u het token vernieuwen.

In dit voorbeeld ziet u hoe u een token vernieuwt met behulp van Python.

  1. Maak een tekstbestand. Sla het bestand op als PythonApplication2.py.

  2. Voeg in PythonApplication2.py het volgende script toe en wijzig dit.

    In het script:

    • Vervang <Your Host Name> door de waarde van uw Azure Cache voor Redis exemplaar. De hostnaam heeft het formulier <DNS name>.redis.cache.windows.net.
    • Vervang <Your Username> door de waarde voor 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()
    
  3. Voer het PythonApplication2.py-bestand uit met behulp van Python. Controleer of de uitvoer er ongeveer uitziet als in dit voorbeeld:

    Schermopname van een terminal met een Python-script voor het testen van cachetoegang.

    In tegenstelling tot in het voorgaande voorbeeld, wordt het token automatisch vernieuwd door de code in dit voorbeeld 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 de resources niet meer wilt gebruiken, kunt u de Azure-resourcegroep verwijderen die u hebt gemaakt, als u klaar bent met het gebruik van de resources.

Waarschuwing

Het verwijderen van een resourcegroep kan niet ongedaan worden gemaakt. Wanneer u een resourcegroep verwijdert, worden alle resources in de resourcegroep 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

  1. Meld u aan bij Azure Portal en selecteer vervolgens Resourcegroepen.

  2. Selecteer de resourcegroep die u wilt verwijderen.

    Als er veel resourcegroepen zijn, voert u in Filter voor een veld de naam in van de resourcegroep die u hebt gemaakt om dit artikel te voltooien. Selecteer de resourcegroep in de lijst met zoekresultaten.

    Schermopname van een lijst met resourcegroepen waaruit u kunt kiezen om te verwijderen.

  3. Selecteer Resourcegroep verwijderen.

  4. Voer in het deelvenster Een resourcegroep verwijderen de naam van de resourcegroep in die u wilt bevestigen en selecteer Vervolgens Verwijderen.

    Schermopname van een vak waarin u de resourcenaam moet invoeren om het verwijderen te bevestigen.

Binnen enkele ogenblikpen worden de resourcegroep en alle bijbehorende resources verwijderd.