Teilen über


Schnellstart: Verwenden von Azure Cache for Redis mit Python

In dieser Schnellstartanleitung integrieren Sie Azure Cache für Redis in ein Python-Skript, um Zugriff auf einen sicheren, dedizierten Cache zu erhalten, der von jeder Anwendung in Azure aus zugänglich ist.

Überspringen und mit dem Code auf GitHub fortfahren

Wenn Sie direkt mit dem Code fortfahren möchten, finden Sie im Python-Schnellstart auf GitHub weitere Informationen.

Voraussetzungen

Erstellen einer Azure Cache for Redis-Instanz

  1. Melden Sie sich zum Erstellen eines Caches beim Azure-Portal an, und wählen Sie Ressource erstellen aus.

    Im linken Navigationsbereich ist „Ressource erstellen“ hervorgehoben.

  2. Geben Sie auf der Seite Erste Schritte den Begriff Azure Cache for Redis in das Suchfeld ein. Wählen Sie anschließend Erstellen.

    Screenshot: Azure Marketplace mit Azure Cache for Redis im Suchfeld und die Schaltfläche „Erstellen“ ist mit einem roten Rahmen hervorgehoben

  3. Konfigurieren Sie auf der Seite Neuer Redis Cache die Einstellungen für den neuen Cache.

    Einstellung Wert auswählen BESCHREIBUNG
    Abonnement Öffnen Sie die Dropdownliste, und wählen Sie Ihr Abonnement aus. Das Abonnement, unter dem diese neue Azure Cache for Redis-Instanz erstellt wird.
    Ressourcengruppe Öffnen Sie die Dropdownliste, und wählen Sie eine Ressourcengruppe aus, oder wählen Sie Neu erstellen aus, und geben Sie einen Namen für eine neue Ressourcengruppe ein. Der Name der Ressourcengruppe, in der Ihr Cache und weitere Ressourcen erstellt werden. Wenn Sie alle Ihre App-Ressourcen in einer Ressourcengruppe zusammenfassen, können Sie sie einfacher gemeinsam verwalten oder löschen.
    DNS-Name Geben Sie einen eindeutigen Namen ein. Der Cachename muss zwischen 1 und 63 Zeichen lang sein und darf nur Ziffern, Buchstaben und Bindestriche enthalten. Der Name muss mit einer Zahl oder einem Buchstaben beginnen und enden und darf keine aufeinanderfolgenden Bindestriche enthalten. Der Hostname Ihrer Cache-Instanz lautet <DNS-Name>.redis.cache.windows.net.
    Location Öffnen Sie die Dropdownliste, und wählen Sie einen Standort aus. Wählen Sie eine Region in der Nähe anderer Dienste aus, die Ihren Cache verwenden.
    Cache-SKU Öffnen Sie die Dropdownliste, und wählen Sie eine SKU aus. Die SKU bestimmt die Parameter für Größe, Leistung und Features, die für den Cache verfügbar sind. Weitere Informationen finden Sie unter What is Azure Cache for Redis (Was ist Azure Cache for Redis?).
    Cachegröße Öffnen Sie die Dropdownliste, und wählen Sie eine Größe für den Cache aus. Weitere Informationen finden Sie unter What is Azure Cache for Redis (Was ist Azure Cache for Redis?).
  4. Wählen Sie die Registerkarte Netzwerk oder unten auf der Seite die Schaltfläche Netzwerk aus.

  5. Wählen Sie auf der Registerkarte Netzwerk Ihre Konnektivitätsmethode aus.

  6. Wählen Sie die Registerkarte Weiter: Erweitert oder unten auf der Seite die Schaltfläche Weiter: Erweitert aus, um die Registerkarte Erweitert anzuzeigen.

    Screenshot der Registerkarte „Erweitert“ im Arbeitsbereich und der verfügbaren Auswahloptionen.

    • Schalten Sie für Basic- oder Standard-Caches die Auswahl auf einen Nicht-TLS-Port um. Sie können auch auswählen, ob Sie die Microsoft Entra-Authentifizierung aktivieren möchten.
    • Konfigurieren Sie für ein Premium-Cache die Einstellungen für einen Nicht-TLS-Port, das Clustering, die verwaltete Identität und die Datenpersistenz. Sie können auch auswählen, ob Sie die Microsoft Entra-Authentifizierung aktivieren möchten.

    Wichtig

    Um optimale Sicherheit zu gewährleisten, empfiehlt Microsoft die Verwendung von Microsoft Entra ID mit verwalteten Identitäten, um Anforderungen nach Möglichkeit immer gegen Ihren Cache zu autorisieren. Die Autorisierung mit Microsoft Entra ID und verwalteten Identitäten bietet eine höhere Sicherheit und Benutzerfreundlichkeit als die Autorisierung mit gemeinsam verwendetem Schlüssel. Weitere Informationen zum Verwenden verwalteter Identitäten mit Ihren Caches finden Sie unter Verwenden von Microsoft Entra ID für die Cacheauthentifizierung.

  7. Wählen Sie die Registerkarte Weiter: Tags oder unten auf der Seite die Schaltfläche Weiter: Tags aus.

  8. Geben Sie optional auf der Registerkarte Tags den Namen und den Wert ein, wenn Sie die Ressource kategorisieren möchten.

  9. Klicken Sie auf Überprüfen + erstellen. Sie werden zur Registerkarte Überprüfen und erstellen weitergeleitet, auf der Azure Ihre Konfiguration überprüft.

  10. Wenn die grüne Meldung „Validierung erfolgreich“ angezeigt wird, wählen Sie Erstellen aus.

Es dauert eine Weile, bis der Cache erstellt worden ist. Sie können den Fortschritt auf der Seite Übersicht von Azure Cache for Redis überwachen. Wenn Wird ausgeführt als Status angezeigt wird, ist der Cache einsatzbereit.

Installieren der redis-py-Bibliothek

Redis-py ist eine Python-Schnittstelle für Azure Cache for Redis. Verwenden Sie das Python-Pakettool pip an einer Eingabeaufforderung, um das Paket redis-py zu installieren.

Im folgenden Beispiel wird pip3 für Python 3 an einer Administrator-Eingabeaufforderung verwendet, um redis-py unter Windows 11 zu installieren.

Screenshot eines Terminals mit einer Installation der redis-py-Schnittstelle für Azure Cache for Redis.

Erstellen eines Python-Skripts zum Zugriff auf Ihren Cache

Erstellen Sie ein Python-Skript, das entweder Microsoft Entra-ID oder Zugriffsschlüssel verwendet, um eine Verbindung mit einem Azure Cache für Redis herzustellen. Wir empfehlen die Verwendung von Microsoft Entra ID.

Aktivieren der auf Microsoft Entra ID basierenden Authentifizierung in Ihrem Cache

Wenn Sie bereits über einen Cache verfügen, sollten Sie zuerst überprüfen, ob die Microsoft Entra-Authentifizierung aktiviert wurde. Wenn nicht, aktivieren Sie sie. Wir empfehlen, Microsoft Entra ID für Ihre Anwendungen zu verwenden.

  1. Wählen Sie im Azure-Portal die Azure Cache for Redis-Instanz aus, in der Sie die tokenbasierte Microsoft Entra-Authentifizierung verwenden möchten.

  2. Wählen Sie im Ressourcen-Menü die Option Authentifizierung aus.

  3. Checken Sie im Arbeitsbereich ein, um zu sehen, ob Microsoft Entra-Authentifizierung aktivieren aktiviert ist. Wenn ja, können Sie fortfahren.

  4. Wählen Sie Microsoft Entra-Authentifizierung aktivieren aus, und geben Sie einen gültigen Benutzernamen ein. Dem eingegebenen Benutzer wird automatisch standardmäßig die Datenbesitzer-Zugriffsrichtlinie zugewiesen, wenn Sie Speichernauswählen. Sie können auch eine verwaltete Identität oder einen Dienstprinzipal eingeben, um eine Verbindung mit Ihrer Cache-Instanz herzustellen.

    Screenshot der im Ressourcenmenü ausgewählten Authentifizierung und aktivierter Microsoft Entra-Authentifizierung.

  5. In einem Popupdialogfeld wird angezeigt, in dem Sie gefragt werden, ob Sie Ihre Konfiguration aktualisieren möchten, und Sie werden informiert, dass es mehrere Minuten dauert. Wählen Sie Ja aus.

    Wichtig

    Sobald der Aktivierungsvorgang abgeschlossen ist, werden die Knoten in Ihrer Cache-Instanz neu gestartet, um die neue Konfiguration zu laden. Es wird empfohlen, diesen Vorgang während der Wartung oder außerhalb Ihrer Spitzenarbeitszeiten durchzuführen. Dieser Vorgang kann bis zu 30 Minuten in Anspruch nehmen.

Informationen zur Verwendung der Microsoft Entra-ID mit Azure CLI finden Sie auf den Referenzseiten für Identität.

Installieren der Microsoft Authentication Library

  1. Installieren Sie die Microsoft Authentication Library (MSAL). Mit dieser Bibliothek können Sie Sicherheitstoken von Microsoft Identity abrufen, um Benutzer zu authentifizieren.

  2. Sie können die verfügbare Python Azure Identity-Clientbibliothek verwenden, die MSAL verwendet, um Unterstützung bei der Tokenauthentifizierung bereitzustellen. Installieren Sie diese Bibliothek mit pip.

pip install azure-identity

Erstellen eines Python-Skripts mithilfe der Microsoft Entra ID

  1. Erstellen Sie eine neue Textdatei, fügen Sie das folgende Skript hinzu, und speichern Sie die Datei als PythonApplication1.py.

  2. Ersetzen Sie <Your Host Name> durch den Wert für Ihre Azure Cache for Redis-Instanz. Ihr Hostname hat das Format <DNS name>.redis.cache.windows.net.

  3. Ersetzen Sie <Your Username> durch die Werte Ihres Microsoft Entra ID-Benutzers.

    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. Bevor Sie Ihren Python-Code über ein Terminal ausführen, vergewissern Sie sich, dass Sie das Terminal für die Verwendung von Microsoft Entra ID autorisieren.

    azd auth login

  5. Führen Sie PythonApplication1.py mit Python aus. Die angezeigten Ergebnisse sollten ähnlich wie das folgende Beispiel aussehen:

    Screenshot eines Terminals mit einem Python-Skript zum Testen des Cachezugriffs.

Erstellen eines Python-Skripts mithilfe einer erneuten Authentifizierung

Microsoft Entra ID-Zugriffstoken haben eine begrenzte Lebensdauer, durchschnittlich 75 Minuten. Um eine Verbindung zum Cache aufrechtzuerhalten, müssen Sie das Token aktualisieren. Dies wird im folgenden Beispiel mit Python veranschaulicht.

  1. Erstellen Sie eine neue Textdatei, und fügen Sie das folgenden Skrip hinzu. Speichern Sie dann die Datei als PythonApplication2.py.

  2. Ersetzen Sie <Your Host Name> durch den Wert für Ihre Azure Cache for Redis-Instanz. Ihr Hostname hat das Format <DNS name>.redis.cache.windows.net.

  3. Ersetzen Sie <Your Username> durch die Werte Ihres Microsoft Entra ID-Benutzers.

    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. Führen Sie PythonApplication2.py mit Python aus. Die angezeigten Ergebnisse sollten ähnlich wie das folgende Beispiel aussehen:

    Screenshot eines Terminals mit einem Python-Skript zum Testen des Cachezugriffs.

    Im Gegensatz zum ersten Beispiel wird das Token automatisch aktualisiert, wenn es abläuft.

Bereinigen von Ressourcen

Wenn Sie die in diesem Artikel erstellten Ressourcen weiterhin verwenden möchten, behalten Sie die Ressourcengruppe bei.

Wenn Sie die Ressourcen nicht mehr benötigen, können Sie die erstellte Azure-Ressourcengruppe ansonsten löschen, um Kosten zu vermeiden.

Wichtig

Das Löschen einer Ressourcengruppe kann nicht rückgängig gemacht werden. Beim Löschen einer Ressourcengruppe werden alle darin enthaltenen Ressourcen unwiderruflich gelöscht. Achten Sie daher darauf, dass Sie nicht versehentlich die falsche Ressourcengruppe oder die falschen Ressourcen löschen. Falls Sie die Ressourcen in einer vorhandenen Ressourcengruppe erstellt haben, die Ressourcen enthält, die Sie behalten wollen, können Sie jede Ressource einzeln löschen, statt die Ressourcengruppe zu löschen.

So löschen Sie eine Ressourcengruppe

  1. Melden Sie sich beim Azure-Portal an, und wählen Sie anschließend Ressourcengruppen aus.

  2. Wählen Sie die Ressourcengruppe aus, die Sie löschen möchten.

    Wenn viele Ressourcengruppen vorhanden sind, verwenden Sie das Feld Nach einem beliebigen Feld filtern..., und geben Sie den Namen Ihrer Ressourcengruppe ein, die Sie für diesen Artikel erstellt haben. Wählen Sie die Ressourcengruppe in der Ergebnisliste aus.

    Screenshot: Liste mit zu löschenden Ressourcengruppen im Arbeitsbereich

  3. Wählen Sie die Option Ressourcengruppe löschen.

  4. Sie werden aufgefordert, das Löschen der Ressourcengruppe zu bestätigen. Geben Sie den Namen Ihrer Ressourcengruppe ein, und wählen Sie Löschen aus.

    Screenshot: Formular, in das der Ressourcenname eingegeben werden muss, um den Löschvorgang zu bestätigen

Daraufhin werden die Ressourcengruppe und alle darin enthaltenen Ressourcen gelöscht.