Schnellstart: Verwenden von Azure Cache for Redis mit einer Python-App

In diesem Schnellstart integrieren Sie Azure Cache for Redis in ein Python-Skript, um Zugriff auf einen sicheren, dedizierten Cache zu erhalten, der von jeder Anwendung in Azure aus zugänglich ist.

Zum Code springen

In diesem Artikel erfahren Sie, wie Sie eine Python-App erstellen und dann den Code ändern, um eine funktionierende Beispiel-App zu erhalten.

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

Voraussetzungen

Erstellen eines Caches

  1. Melden Sie sich zum Erstellen eines Cache beim Azure-Portal an. Wählen Sie im Menü des Portals Ressource erstellen aus.

    Sceenshot: Hervorgehobene Option „Ressource erstellen“ im linken Navigationsbereich des Azure-Portals

  2. Geben Sie im Bereich Erste Schritte den Begriff Azure Cache for Redis auf der Suchleiste ein. Navigieren Sie in den Suchergebnissen zu Azure Cache for Redis, und wählen Sie dann Erstellen aus.

    Screenshot: Azure Marketplace mit Azure Cache for Redis im Suchfeld und hervorgehobener Schaltfläche „Erstellen“

  3. Konfigurieren Sie im Bereich Neuer Redis Cache auf der Registerkarte Grundlagen die folgenden Einstellungen für Ihren Cache:

    Einstellung Aktion Beschreibung
    Abonnement Wählen Sie Ihr Azure-Abonnement. Das Abonnement, das zum Erstellen der neuen Instanz von Azure Cache for Redis verwendet werden soll
    Ressourcengruppe Wählen Sie eine Ressourcengruppe aus, oder wählen Sie Neu erstellen aus, und geben Sie einen Namen für eine neue Ressourcengruppe ein. Ein Name für die 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 eine Zeichenfolge von 1 bis 63 Zeichen sein, die nur Zahlen, Buchstaben und Bindestriche enthalten darf. Der Name muss mit einer Zahl oder einem Buchstaben beginnen und enden und darf keine aufeinanderfolgenden Bindestriche enthalten. Der Hostname Ihrer Cache-Instanz ist \<DNS name>.redis.cache.windows.net.
    Location Wählen Sie einen Standort aus. Eine Azure-Region, die sich in der Nähe anderer Dienste befindet, die Ihren Cache verwenden
    Cache-SKU 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 Azure Cache for Redis.
    Cachegröße Wählen Sie eine Cachegröße aus. Weitere Informationen finden Sie unter Azure Cache for Redis.
  4. Wählen Sie die Registerkarte Netzwerk oder Weiter: Netzwerk aus.

  5. Wählen Sie auf der Registerkarte Netzwerk eine Konnektivitätsmethode für den Cache aus.

  6. Wählen Sie die Registerkarte Erweitert oder Weiter: Erweitert aus.

  7. Überprüfen Sie im Bereich Erweitert die Authentifizierungsmethode basierend auf den folgenden Informationen, oder wählen Sie eine aus:

    Screenshot: Bereich „Erweitert“ und zur Auswahl stehende Optionen

    • Standardmäßig ist für einen neuen Basic-, Standard- oder Premium-Cache die Microsoft Entra-Authentifizierung aktiviert und die Authentifizierung mit Zugriffsschlüsseln deaktiviert.
    • Für Basic- oder Standard-Caches können Sie sich für die Auswahl eines Nicht-TLS-Ports entscheiden.
    • Für Standard- und Premium-Caches können Sie Verfügbarkeitszonen aktivieren. Verfügbarkeitszonen können nach der Erstellung des Caches nicht deaktiviert werden.
    • Konfigurieren Sie für ein Premium-Cache die Einstellungen für einen Nicht-TLS-Port, das Clustering, die verwaltete Identität und die Datenpersistenz.

    Wichtig

    Verwenden Sie für optimale Sicherheit nach Möglichkeit Microsoft Entra ID mit verwalteten Identitäten, um Anforderungen für 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 einem Schlüssel für den gemeinsamen Zugriff. Weitere Informationen zur Verwendung verwalteter Identitäten mit Ihrem Cache finden Sie unter Verwenden von Microsoft Entra ID für die Cacheauthentifizierung.

  8. (Optional) Wählen Sie die Registerkarte Tags oder Weiter: Tags aus.

  9. (Optional) Geben Sie auf der Registerkarte Tags einen Tagnamen und den zugehörigen Wert ein, wenn Sie die Cacheressource kategorisieren möchten.

  10. Wählen Sie die Schaltfläche Überprüfen + erstellen aus.

    Auf der Registerkarte Überprüfen und erstellen überprüft Azure automatisch Ihre Konfiguration.

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

Eine neue Cachebereitstellung dauert mehrere Minuten. Sie können den Fortschritt der Bereitstellung im Bereich „Übersicht“ von Azure Cache for Redis überwachen. Wenn als Status der Wert Wird ausgeführt angezeigt wird, kann der Cache verwendet werden.

Installieren der redis-py-Bibliothek

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

Im folgenden Beispiel wird pip3 für Python 3 in einem Administrator-Eingabeaufforderungsfenster 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 Azure Cache for Redis herzustellen. Wir empfehlen die Verwendung von Microsoft Entra ID.

Aktivieren der auf Microsoft Entra ID basierenden Authentifizierung in Ihrem Cache

Überprüfen Sie bei einem vorhandenen Cache, ob die Microsoft Entra-Authentifizierung aktiviert ist. Falls nicht, führen Sie die folgenden Schritte aus, um die Microsoft Entra-Authentifizierung zu aktivieren. Wir empfehlen, Microsoft Entra ID für die Authentifizierung in Ihren 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 Dienstmenü unter Einstellungen die Option Authentifizierung aus.

  3. Überprüfen Sie im Bereich Authentifizierung, ob das Kontrollkästchen Microsoft Entra-Authentifizierung aktivieren aktiviert ist. Falls ja, können Sie mit dem nächsten Abschnitt fortfahren.

  4. Aktivieren Sie andernfalls das Kontrollkästchen Microsoft Entra-Authentifizierung aktivieren. Geben Sie dann den Namen eines gültigen Benutzers ein. Wählen Sie Speichern. Dem eingegebenen Benutzernamen wird automatisch die Datenbesitzer-Zugriffsrichtlinie zugewiesen.

    Sie können auch eine verwaltete Identität oder einen Dienstprinzipal eingeben, um eine Verbindung mit Ihrem Cache herzustellen.

    Screenshot: Im Dienstmenü ausgewählte Option „Authentifizierung“ und aktiviertes Kontrollkästchen „Microsoft Entra-Authentifizierung aktivieren“

  5. In einem Dialogfeld werden Sie gefragt, ob Sie Ihre Konfiguration aktualisieren möchten, und werden informiert, dass die Aktualisierung mehrere Minuten dauert. Wählen Sie Ja aus.

    Wichtig

    Nach Abschluss des Aktivierungsvorgangs werden die Knoten in Ihrem Cache neu gestartet, um die neue Konfiguration zu laden. Wir empfehlen, dass Sie diesen Vorgang während des Standardwartungsfensters oder außerhalb der Hauptgeschäftszeiten durchführen. Der Vorgang kann bis zu 30 Minuten dauern.

Informationen zur Verwendung von Microsoft Entra ID mit der Azure CLI finden Sie auf den Referenzseiten zur Identität.

Installieren der Microsoft-Authentifizierungsbibliothek

Die Microsoft-Authentifizierungsbibliothek (Microsoft Authentication Library, MSAL) ruft Sicherheitstoken von Microsoft Identity Platform ab, um Benutzer zu authentifizieren.

So installieren Sie die MSAL

  1. Installieren Sie MSAL für Python.

  2. Installieren Sie die Azure Identity-Clientbibliothek für Python. Die Bibliothek verwendet MSAL, um Unterstützung für die Tokenauthentifizierung bereitzustellen.

    Installieren Sie diese Bibliothek mithilfe von pip:

pip install azure-identity

Erstellen eines Python-Skripts mithilfe von Microsoft Entra ID

  1. Erstellen einer Textdatei Speichern Sie die Datei unter PythonApplication1.py.

  2. Fügen Sie in PythonApplication1.py das folgende Skript hinzu, und ändern Sie es.

    Im Skript:

    • Ersetzen Sie <Your Host Name> durch den Wert für Ihre Azure Cache for Redis-Instanz. Der Hostname weist folgendes Format auf: <DNS name>.redis.cache.windows.net.
    • Ersetzen Sie <Your Username> durch den Wert für Ihren Microsoft Entra ID-Benutzer.
    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. Bevor Sie Ihren Python-Code über ein Terminal ausführen, autorisieren Sie das Terminal für die Verwendung von Microsoft Entra ID:

    azd auth login

  4. Führen Sie die Datei PythonApplication1.py mithilfe von Python aus. Stellen Sie sicher, dass die Ausgabe dem folgenden Beispiel ähnelt:

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

Erstellen eines Python-Skripts mithilfe einer erneuten Authentifizierung

Ein Microsoft Entra ID-Zugriffstoken hat eine begrenzte Lebensdauer von etwa 75 Minuten. Um eine Verbindung zum Cache aufrechtzuerhalten, müssen Sie das Token aktualisieren.

Das Aktualisieren eines Token mithilfe von Python wird im folgenden Beispiel veranschaulicht.

  1. Erstellen einer Textdatei Speichern Sie die Datei unter PythonApplication2.py.

  2. Fügen Sie in PythonApplication2.py das folgende Skript hinzu, und ändern Sie es.

    Im Skript:

    • Ersetzen Sie <Your Host Name> durch den Wert für Ihre Azure Cache for Redis-Instanz. Der Hostname weist folgendes Format auf: <DNS name>.redis.cache.windows.net.
    • Ersetzen Sie <Your Username> durch den Wert für Ihren Microsoft Entra ID-Benutzer.
    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. Führen Sie die Datei PythonApplication2.py mithilfe von Python aus. Stellen Sie sicher, dass die Ausgabe dem folgenden Beispiel ähnelt:

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

    Im Gegensatz zum vorherigen Beispiel aktualisiert der Code in diesem Beispiel das Token automatisch, 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 löschen, um Kosten im Zusammenhang mit den Ressourcen zu vermeiden.

Warnung

Das Löschen einer Ressourcengruppe kann nicht rückgängig gemacht werden. Beim Löschen einer Ressourcengruppe werden alle darin enthaltenen Ressourcen endgültig 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 möchten, können Sie anstelle der Ressourcengruppe alle Ressourcen einzeln löschen.

Löschen einer Ressourcengruppe

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

  2. Wählen Sie die zu löschende Ressourcengruppe aus.

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

    Screenshot: Liste der Ressourcengruppen, die zum Löschen ausgewählt werden können

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

  4. Geben Sie im Bereich Ressourcengruppe löschen zur Bestätigung den Namen Ihrer Ressourcengruppe ein, und wählen Sie dann Löschen aus.

    Screenshot: Feld für die Eingabe des Ressourcennamens, um den Löschvorgang zu bestätigen

Innerhalb kurzer Zeit werden die Ressourcengruppe und alle darin enthaltenen Ressourcen gelöscht.