Partager via


Démarrage rapide : Utiliser Azure Cache pour Redis avec une application Python

Dans ce guide de démarrage rapide, vous incorporez Azure Cache pour Redis dans un script Python pour avoir accès à un cache sécurisé et dédié accessible à partir de n’importe quelle application dans Azure.

Passer au code

Cet article explique comment créer une application Python, puis comment modifier le code pour aboutir à un exemple d’application fonctionnel.

Si vous souhaitez passer directement au code, consultez l’échantillon de démarrage rapide Python sur GitHub.

Prérequis

Création d'un cache

  1. Pour créer un cache, connectez-vous au Portail Azure. Dans le menu du portail, sélectionnez Créer une ressource.

    Capture d’écran montrant l’option Créer une ressource mise en évidence dans le volet de navigation gauche du portail Azure.

  2. Dans le volet Démarrer, entrez Azure Cache pour Redis dans la barre de recherche. Dans les résultats de la recherche, localisez Azure Cache pour Redis, puis sélectionnez Créer.

    Capture d’écran montrant la Place de marché Azure avec Azure Cache pour Redis dans la zone de recherche et le bouton Créer mis en évidence.

  3. Dans le volet Nouveau cache Redis, sous l’onglet Informations de base, configurez les paramètres suivants pour votre cache :

    Setting Action Description
    Abonnement Sélectionnez votre abonnement Azure. L’abonnement à utiliser pour créer l’instance d’Azure Cache pour Redis.
    Groupe de ressources Sélectionnez un groupe de ressources ou choisissez Créer nouveau, puis entrez un nouveau nom de groupe de ressources. Le nom du groupe de ressources dans lequel créer votre cache et d’autres ressources. En plaçant toutes les ressources de votre application dans un seul groupe de ressources, vous pouvez facilement les gérer ou les supprimer ensemble.
    Nom DNS Entrez un nom unique. Le nom du cache doit être une chaîne de 1 à 63 caractères ne contenant que des chiffres, des lettres et des traits d’union. Le nom doit commencer et se terminer par un chiffre ou une lettre, et ne doit pas contenir de traits d’union consécutifs. Le nom d’hôte de votre instance de cache est \<DNS name>.redis.cache.windows.net.
    Emplacement Sélectionnez un emplacement. Une région Azure proche d’autres services qui utilisent votre cache.
    Référence SKU du cache Sélectionnez une référence SKU. La référence SKU détermine les paramètres de taille, de performance et de fonctionnalités disponibles pour le cache. Pour plus d’informations, consultez Présentation d’Azure Cache pour Redis.
    Taille du cache Sélectionnez une taille de cache. Pour plus d’informations, consultez Présentation d’Azure Cache pour Redis.
  4. Sélectionnez l’onglet Mise en réseau ou sélectionnez Suivant : Mise en réseau.

  5. Sous l’onglet Mise en réseau, sélectionnez une méthode de connectivité à utiliser pour le cache.

  6. Sélectionnez l’onglet Avancé ou sélectionnez Suivant : avancé.

  7. Dans le volet Avancé, vérifiez ou sélectionnez une méthode d’authentification en fonction des informations suivantes :

    Capture d’écran montrant l’onglet Avancé et les options disponibles à sélectionner.

    • Par défaut, pour un nouveau cache Basic, Standard ou Premium, l’authentification Microsoft Entra est activée et l’authentification par clés d’accès est désactivée.
    • Pour les caches Basic ou Standard, vous pouvez choisir la sélection d'un port non TLS.
    • Pour les caches Standard et Premium, vous pouvez choisir d'activer les zones de disponibilité. Vous ne pouvez pas désactiver les zones de disponibilité une fois le cache créé.
    • Pour un cache Premium, configurez les paramètres afin d’utiliser un port non-TLS, le clustering, l’identité managée et la persistance des données.

    Important

    Pour bénéficier d’une sécurité optimale, nous vous recommandons d’utiliser si possible Microsoft Entra ID avec des identités managées pour autoriser les requêtes sur votre cache. L’autorisation avec Microsoft Entra ID et les identités managées offre davantage de sécurité et de facilité d’utilisation que l’autorisation par clé d’accès partagée. Pour plus d’informations sur l’utilisation d’identités managées avec votre cache, consultez Utiliser Microsoft Entra ID pour l’authentification du cache.

  8. (Facultatif) Sélectionnez l’onglet Étiquettes ou sélectionnez Suivant : Étiquettes.

  9. (Facultatif) Sous l’onglet Étiquettes, entrez un nom et une valeur d’étiquette si vous voulez catégoriser votre ressource de cache.

  10. Sélectionnez le bouton Vérifier + Créer.

    Sous l’onglet Vérifier et créer, Azure vérifie automatiquement votre configuration.

  11. Une fois que le message vert Validation réussie s’affiche, sélectionnez Créer.

Le déploiement d’un nouveau cache prend plusieurs minutes. Vous pouvez surveiller la progression du déploiement dans le volet Vue d’ensemble d’Azure Cache pour Redis. Lorsque État affiche En cours d’exécution, le cache est prêt à être utilisé.

Installer la bibliothèque redis-py

Redis-py est une interface Python avec le cache Azure pour Redis. Utilisez l’outil pip pour les paquets Python afin d’installer le paquet redis-py en ligne de commande.

L’exemple suivant utilise pip3 pour Python 3 pour installer redis-py sur Windows 11 dans une fenêtre d’invite de commandes administrateur(-trice).

Capture d’écran d’un terminal montrant une installation de l’interface redis-py pour Azure Cache pour Redis.

Créer un script Python pour accéder à votre cache

Créez un script Python qui utilise Microsoft Entra ID ou des clés d’accès pour se connecter à un cache Azure Cache pour Redis. Nous vous recommandons d’utiliser Microsoft Entra ID.

Activer l’authentification Microsoft Entra ID sur votre cache

Pour un cache existant, commencez par regarder si l’authentification Microsoft Entra est activée. Si ce n’est pas le cas, effectuez les étapes suivantes pour activer l’authentification Microsoft Entra. Nous vous recommandons d’utiliser Microsoft Entra ID pour s’authentifier dans vos applications.

  1. Dans le portail Azure, sélectionnez l’instance Azure Cache pour Redis pour laquelle vous voulez utiliser l’authentification basée sur des jetons Microsoft Entra.

  2. Dans le menu du service, sous Paramètres, sélectionnez Authentification.

  3. Dans le volet Authentification, vérifiez si la case Activer l’authentification Microsoft Entra est cochée. Si elle l’est, vous pouvez passer à la section suivante.

  4. Dans le cas contraire, cochez la case Activer l’authentification Microsoft Entra. Ensuite, entrez le nom d’un utilisateur valide. Cliquez sur Enregistrer. Le nom d’utilisateur que vous entrez est automatiquement affecté à la stratégie d’accès Propriétaire des données.

    Vous pouvez également entrer une identité managée ou un principal de service pour vous connecter à votre cache.

    Capture d’écran montrant l’élément Authentification sélectionné dans le menu du service et la case Activer l’authentification Microsoft Entra cochée.

  5. Dans une boîte de dialogue, vous êtes invité(e) à mettre à jour votre configuration et vous êtes informé(e) que la mise à jour prend plusieurs minutes. Sélectionnez Oui.

    Important

    Quand l’opération d’activation est terminée, les nœuds de votre cache redémarrent pour charger la nouvelle configuration. Nous vous recommandons d’effectuer cette opération pendant votre fenêtre de maintenance standard ou en dehors de vos heures de pointe. Le processus peut prendre jusqu’à 30 minutes.

Pour plus d’informations sur l’utilisation de Microsoft Entra ID avec Azure CLI, consultez les pages d’informations de référence sur les identités.

Installer la bibliothèque d’authentification Microsoft

La bibliothèque d’authentification Microsoft (MSAL) reçoit des jetons de sécurité de la plateforme d’identité Microsoft pour authentifier les utilisateurs.

Pour installer la bibliothèque MSAL :

  1. Installer MSAL pour Python.

  2. Installer la bibliothèque Python du client d’identité Azure. La bibliothèque utilise MSAL pour fournir la prise en charge de l’authentification par jeton.

    Installer cette bibliothèque en utilisant pip :

pip install azure-identity

Créer un script Python en utilisant Microsoft Entra ID

  1. Créer un fichier texte. Enregistrer le fichier en tant que PythonApplication1.py.

  2. Dans PythonApplication1.py, ajoutez et modifiez le script suivant.

    Dans le script :

    • Remplacez <Your Host Name> par la valeur provenant de votre instance Azure Cache pour Redis. Votre nom d’hôte UNC présente le format <DNS name>.redis.cache.windows.net.
    • Remplacez <Your Username> par la valeur pour votre utilisateur(-trice) Microsoft Entra ID.
    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. Avant d’exécuter votre code Python dans un terminal, autorisez le terminal à utiliser Microsoft Entra ID :

    azd auth login

  4. Exécutez le fichier PythonApplication1.py à l’aide de Python. Vérifiez que la sortie ressemble à cet exemple :

    Capture d’écran d’un terminal montrant un script Python pour tester l’accès au cache.

Créer un script Python en utilisant la réauthentification

Un jeton d’accès Microsoft Entra ID a une durée de vie limitée d’environ 75 minutes. Pour maintenir une connexion à votre cache, vous devez actualiser le jeton.

Cet exemple montre comment actualiser un jeton en utilisant Python.

  1. Créer un fichier texte. Enregistrer le fichier en tant que PythonApplication2.py.

  2. Dans PythonApplication2.py, ajoutez et modifiez le script suivant.

    Dans le script :

    • Remplacez <Your Host Name> par la valeur provenant de votre instance Azure Cache pour Redis. Votre nom d’hôte UNC présente le format <DNS name>.redis.cache.windows.net.
    • Remplacez <Your Username> par la valeur pour votre utilisateur(-trice) Microsoft Entra ID.
    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. Exécutez le fichier PythonApplication2.py à l’aide de Python. Vérifiez que la sortie ressemble à cet exemple :

    Capture d’écran d’un terminal montrant un script Python pour tester l’accès au cache.

    Contrairement à l’exemple précédent, si votre jeton expire, le code de cet exemple actualise automatiquement le jeton.

Nettoyer les ressources

Si vous souhaitez continuer à utiliser les ressources que vous avez créées dans cet article, conservez le groupe de ressources.

Sinon, pour éviter les frais liés aux ressources, si vous en avez terminé avec les ressources, vous pouvez supprimer le groupe de ressources Azure que vous avez créé.

Avertissement

La suppression d’un groupe de ressources est irréversible. Quand vous supprimez un groupe de ressources, toutes les ressources contenues dans ce groupe sont supprimées définitivement. Veillez à ne pas supprimer accidentellement des ressources ou un groupe de ressources incorrects. Si vous avez créé les ressources dans un groupe de ressources existant qui contient des ressources que vous voulez conserver, vous pouvez supprimer chaque ressource individuellement au lieu de supprimer le groupe de ressources.

Supprimer un groupe de ressources

  1. Connectez-vous au Portail Azure, puis sélectionnez Groupes de ressources.

  2. Sélectionnez le groupe de ressources à supprimer.

    S’il existe de nombreux groupes de ressources, dans Filtrer un champ, entrez le nom du groupe de ressources que vous avez créé pour effectuer les étapes de cet article. Dans la liste des résultats de la recherche, sélectionnez le groupe de ressources.

    Capture d’écran montrant une liste de groupes de ressources où choisir le groupe à supprimer.

  3. Sélectionnez Supprimer le groupe de ressources.

  4. Dans le volet Supprimer un groupe de ressources, entrez le nom de votre groupe de ressources pour confirmer, puis sélectionnez Supprimer.

    Capture d’écran montrant une zone qui nécessite l’entrée du nom de la ressource pour confirmer la suppression.

Après quelques instants, le groupe de ressources et toutes ses ressources sont supprimés.