Dela via


Snabbstart: Så här använder du Azure Cache for Redis i Python

I den här snabbstarten införlivar du Azure Cache for Redis i ett Python-skript för att få åtkomst till en säker, dedikerad cache som är tillgänglig från alla program i Azure.

Hoppa till koden på GitHub

Om du vill hoppa direkt till koden kan du läsa Python-snabbstarten på GitHub.

Förutsättningar

Skapa en Azure Cache for Redis-instans

  1. Om du vill skapa en cache loggar du in på Azure-portalen och väljer Skapa en resurs.

    Skapa en resurs är markerad i det vänstra navigeringsfönstret.

  2. På sidan Kom igång skriver du Azure Cache for Redis i sökrutan. Välj sedan Skapa.

    Skärmbild av Azure Marketplace med Azure Cache for Redis i sökrutan och skapa markeras med en röd ruta.

  3. På sidan Ny Redis Cache konfigurerar du inställningarna för cacheminnet.

    Inställning Välj ett värde beskrivning
    Abonnemang Listrutan och välj din prenumeration. Prenumerationen som den nya Azure Cache for Redis-instansen ska skapas under.
    Resursgrupp Listrutan och välj en resursgrupp eller välj Skapa ny och ange ett nytt resursgruppsnamn. Namn på den resursgrupp där cacheminnet och andra resurser ska skapas. Genom att placera alla dina appresurser i en resursgrupp kan du enkelt hantera eller ta bort dem tillsammans.
    DNS-namn Ange ett unikt namn. Cachenamnet måste vara en sträng mellan 1 och 63 tecken som endast innehåller siffror, bokstäver eller bindestreck. Namnet måste börja och sluta med ett tal eller en bokstav och får inte innehålla bindestreck i följd. Värdnamnet för cacheinstansen är <DNS-namnet.redis.cache.windows.net>.
    Plats Listrutan och välj en plats. Välj en region nära andra tjänster som använder din cache.
    Cache-SKU Listrutan och välj en SKU. SKU:n avgör vilka parametrar för storlek, prestanda och funktioner som är tillgängliga för cacheminnet. Mer information finns i Översikt över Azure Cache for Redis.
    Cachestorlek Listruta och välj en storlek på cacheminnet Mer information finns i Översikt över Azure Cache for Redis.
  4. Välj fliken Nätverk eller välj knappen Nätverk längst ned på sidan.

  5. På fliken Nätverk väljer du din anslutningsmetod.

  6. Välj fliken Nästa: Avancerat eller välj knappen Nästa: Avancerat längst ned på sidan för att se fliken Avancerat .

    Skärmbild som visar fliken Avancerat i arbetsfönstret och det tillgängliga alternativet att välja.

    • För Basic- eller Standard-cacheminnen växlar du markeringen för en icke-TLS-port. Du kan också välja om du vill aktivera Microsoft Entra-autentisering.
    • För en Premium-cache konfigurerar du inställningarna för icke-TLS-port, klustring, hanterad identitet och datapersistence. Du kan också välja om du vill aktivera Microsoft Entra-autentisering.

    Viktigt!

    För optimal säkerhet rekommenderar Microsoft att du använder Microsoft Entra-ID med hanterade identiteter för att auktorisera begäranden mot din cache när det är möjligt. Auktorisering med Microsoft Entra-ID och hanterade identiteter ger överlägsen säkerhet och enkel användning via auktorisering av delad nyckel. Mer information om hur du använder hanterade identiteter med dina cacheminnen finns i Använda Microsoft Entra-ID för cacheautentisering.

  7. Välj fliken Nästa: Taggar eller välj knappen Nästa: Taggar längst ned på sidan.

  8. Du kan också ange namn och värde på fliken Taggar om du vill kategorisera resursen.

  9. Välj Granska + skapa. Du kommer till fliken Granska + skapa där Azure verifierar din konfiguration.

  10. När det gröna verifieringsmeddelandet har skickats väljer du Skapa.

Det tar en stund innan en cache skapas. Du kan övervaka förloppet på översiktssidan för Azure Cache for Redis. När Status visas som Körs är cachen redo att användas.

Installera redis-py-biblioteket

Redis-py är ett Python-gränssnitt för Azure Cache for Redis. Använd Python-paketverktyget , pipför att installera redis-py paketet från en kommandotolk.

Följande exempel används pip3 för att installera redis-py Python 3 på Windows 11 från en kommandotolk för administratör.

Skärmbild av en terminal som visar en installation av redis-py-gränssnittet till Azure Cache for Redis.

Skapa ett Python-skript för att komma åt din cache

Skapa ett Python-skript till som använder antingen Microsoft Entra-ID eller åtkomstnycklar för att ansluta till en Azure Cache for Redis. Vi rekommenderar att du använder Microsoft Entra-ID.

Aktivera Microsoft Entra-ID-autentisering i cacheminnet

Om du redan har en cache vill du först kontrollera om Microsoft Entra-autentisering har aktiverats. Om inte aktiverar du det. Vi rekommenderar att du använder Microsoft Entra-ID för dina program.

  1. I Azure-portalen väljer du den Azure Cache for Redis-instans där du vill använda Microsoft Entra-tokenbaserad autentisering.

  2. Välj Autentisering på resursmenyn.

  3. Kontrollera om Aktivera Microsoft Entra-autentisering är markerat i arbetsfönstret. I så fall kan du gå vidare.

  4. Välj Aktivera Microsoft Entra-autentisering och ange namnet på en giltig användare. Användaren som du anger tilldelas automatiskt åtkomstprincip för dataägare som standard när du väljer Spara. Du kan också ange en hanterad identitet eller tjänstens huvudnamn för att ansluta till cacheinstansen.

    Skärmbild som visar autentisering som valts i resursmenyn och aktivera Microsoft Entra-autentisering markerat.

  5. En popup-dialogruta visar en fråga om du vill uppdatera konfigurationen och informerar dig om att det tar flera minuter. Välj Ja.

    Viktigt!

    När aktiveringsåtgärden är klar startas noderna i cacheinstansen om för att läsa in den nya konfigurationen. Vi rekommenderar att du utför den här åtgärden under underhållsperioden eller utanför din rusningstid. Åtgärden kan ta upp till 30 minuter.

Information om hur du använder Microsoft Entra-ID med Azure CLI finns i referenssidorna för identitet.

Installera Microsoft Authentication Library

  1. Installera Microsoft Authentication Library (MSAL). Med det här biblioteket kan du hämta säkerhetstoken från Microsoft-identitet för att autentisera användare.

  2. Du kan använda Python Azure-identitetsklientbiblioteket som använder MSAL för att tillhandahålla stöd för tokenautentisering. Installera det här biblioteket med :pip

pip install azure-identity

Skapa ett Python-skript med Microsoft Entra-ID

  1. Skapa en ny textfil, lägg till följande skript och spara filen som PythonApplication1.py.

  2. Ersätt <Your Host Name> med värdet från din Azure Cache for Redis-instans. Värdnamnet är av formuläret <DNS name>.redis.cache.windows.net.

  3. Ersätt <Your Username> med värdena från din Microsoft Entra-ID-användare.

    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()
    
  4. Innan du kör Python-koden från en terminal måste du auktorisera terminalen för att använda Microsoft Entra-ID.

    azd auth login

  5. Kör PythonApplication1.py med Python. Du bör se resultat som i följande exempel:

    Skärmbild av en terminal som visar ett Python-skript för att testa cacheåtkomst.

Skapa ett Python-skript med hjälp av omautentisering

Microsoft Entra ID-åtkomsttoken har begränsad livslängd, i genomsnitt 75 minuter. För att upprätthålla en anslutning till cacheminnet måste du uppdatera token. Det här exemplet visar hur du gör detta med hjälp av Python.

  1. Skapa en ny textfil och lägg till följande skript. Spara sedan filen som PythonApplication2.py.

  2. Ersätt <Your Host Name> med värdet från din Azure Cache for Redis-instans. Värdnamnet är av formuläret <DNS name>.redis.cache.windows.net.

  3. Ersätt <Your Username> med värdena från din Microsoft Entra-ID-användare.

    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()
    
  4. Kör PythonApplication2.py med Python. Du bör se resultat som i följande exempel:

    Skärmbild av en terminal som visar ett Python-skript för att testa cacheåtkomst.

    Till skillnad från det första exemplet, om din token upphör att gälla, uppdateras den automatiskt i det här exemplet.

Rensa resurser

Om du vill fortsätta att använda de resurser som du skapade i den här artikeln behåller du resursgruppen.

Om du är klar med resurserna kan du ta bort den Azure-resursgrupp som du skapade för att undvika avgifter.

Viktigt!

Att ta bort en resursgrupp kan inte ångras. När du tar bort en resursgrupp tas alla resurser som ingår i den bort permanent. Kontrollera att du inte av misstag tar bort fel resursgrupp eller resurser. Om du har skapat resurserna i en befintlig resursgrupp som innehåller resurser som du vill behålla kan du ta bort varje resurs individuellt i stället för att ta bort resursgruppen.

Ta bort en resursgrupp

  1. Logga in på Azure-portalen och välj Resursgrupper.

  2. Välj den resursgrupp som du vill ta bort.

    Om det finns många resursgrupper använder du rutan Filter för alla fält... och skriver namnet på resursgruppen som du skapade för den här artikeln. Välj resursgruppen i resultatlistan.

    Skärmbild som visar en lista över resursgrupper som ska tas bort i arbetsfönstret.

  3. Välj Ta bort resursgrupp.

  4. Du blir ombedd att bekräfta borttagningen av resursgruppen. Skriv namnet på din resursgrupp för att bekräfta och välj sedan Ta bort.

    Skärmbild som visar ett formulär som kräver resursnamnet för att bekräfta borttagningen.

Efter en liten stund tas resursgruppen och de resurser som finns i den bort.