Partager via


Démarrage rapide : Utiliser Azure Cache pour Redis dans Python

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

Passer au code sur GitHub

Si vous souhaitez passer directement au code, consultez le démarrage rapide Python sur GitHub.

Prérequis

Créer une instance Cache Redis Azure

  1. Pour créer un cache, connectez-vous au portail Azure, puis sélectionnez Créer une ressource.

    Créer une ressource est mis en évidence dans le volet de navigation de gauche.

  2. Dans la page Démarrer, tapez Azure Cache pour Redis dans la zone de recherche. Sélectionnez ensuite Create (Créer).

    Capture d’écran de la Place de marché Azure avec Azure Cache pour Redis dans la zone de recherche et Créer est mis en évidence avec un encadré rouge.

  3. Dans la page Nouveau Cache Redis, configurez les paramètres de votre cache.

    Setting Choisir une valeur Description
    Abonnement Dans la liste déroulante, sélectionnez votre abonnement. Abonnement sous lequel créer cette nouvelle instance d’Azure Cache pour Redis.
    Groupe de ressources Dans la liste déroulante, sélectionnez un groupe de ressources ou choisissez Créer nouveau, puis entrez un nouveau nom de groupe de ressources. 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 ou des traits d’union. Le nom doit commencer et se terminer par un chiffre ou une lettre, et ne peut pas contenir de traits d’union consécutifs. Le nom d’hôte de votre instance de cache est <nom DNS>.redis.cache.windows.net.
    Lieu Dans la liste déroulante, sélectionnez un emplacement. Choisissez une Région proche d’autres services qui utilisent votre cache.
    Référence SKU du cache Déroulez la liste et sélectionnez une référence SKU. La référence SKU détermine la taille, le niveau de performance et les fonctionnalités disponibles pour le cache. Pour plus d’informations, consultez Présentation du cache Azure pour Redis.
    Taille du cache Déroulez la liste et sélectionnez une taille pour votre cache Pour plus d’informations, consultez Présentation du cache Azure pour Redis.
  4. Sélectionnez l’onglet Réseau ou sélectionnez le bouton Réseau au bas de la page.

  5. Sous l’onglet Réseau, sélectionnez votre méthode de connectivité.

  6. Sélectionnez l’onglet Suivant : Avancé ou sélectionnez le bouton Suivant : Avancé en bas de la page pour afficher l’onglet Avancé.

    Capture d’écran montrant l’onglet Avancé dans le volet de travail et l’option pouvant être sélectionnée.

    • Pour un cache De base ou Standard, changez la sélection pour utiliser un port non-TLS. Vous pouvez également sélectionner si vous souhaitez activer Authentification Microsoft Entra.
    • 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. Vous pouvez également sélectionner si vous souhaitez activer Authentification Microsoft Entra.

    Important

    Pour une sécurité optimale, Microsoft recommande d’utiliser dans la mesure du possible Microsoft Entra ID avec des identités managées pour autoriser les requêtes dans 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 de clé partagée. Pour plus d’informations sur l’utilisation d’identités managées avec vos caches, consultez Utiliser Microsoft Entra ID pour l’authentification auprès du cache.

  7. Sélectionnez l’onglet Suivant : Avancé ou sélectionnez le bouton Suivant : Étiquettes au bas de la page.

  8. Si vous le voulez, sous l’onglet Étiquettes, entrez le nom et la valeur si vous souhaitez catégoriser la ressource.

  9. Sélectionnez Revoir + créer. Vous êtes redirigé vers l’onglet Vérifier + créer où Azure valide votre configuration.

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

La création d’un cache prend un certain temps. Vous pouvez surveiller la progression dans la page Vue d’ensemble du Azure Cache pour Redis. Lorsque État indique En cours d’exécution, le cache est prêt pour utilisation.

Installer la bibliothèque redis-py

Redis-py est une interface Python avec le cache Azure pour Redis. Utilisez l’outil des packages Python pip pour installer le package redis-py à partir d’une invite de commandes.

L’exemple suivant utilise pip3 pour Python 3 pour installer redis-py sur Windows 11 à partir d’une invite de commandes administrateur.

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 Microsoft Entra ID.

Activer l’authentification Microsoft Entra ID sur votre cache

Si vous disposez déjà d’un cache, vous voulez d’abord vérifier si l’authentification Microsoft Entra a été activée. Si ce n’est pas le cas, activez-la. Nous vous recommandons d’utiliser Microsoft Entra ID pour 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 Ressource, sélectionnez Authentification.

  3. Dans le volet actif, vérifiez si Activer l’authentification Microsoft Entra est coché. Si c’est le cas, vous pouvez continuer.

  4. Sélectionnez Activer l’authentification Microsoft Entra, puis entrez le nom d’un utilisateur valide. L’utilisateur que vous spécifiez est automatiquement associé à la stratégie d’accès Propriétaire des données par défaut lorsque vous sélectionnez Enregistrer. Vous pouvez également entrer une identité managée ou un principal de service pour vous connecter à votre instance de cache.

    Capture d’écran illustrant l’authentification sélectionnée dans le menu Ressources et l’activation de l’authentification Microsoft Entra cochée.

  5. Une boîte de dialogue contextuelle s’affiche pour vous demander si vous souhaitez mettre à jour votre configuration, et vous informer que l’opération prend plusieurs minutes. Sélectionnez Oui.

    Important

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

Pour plus d’informations sur l’utilisation de Microsoft Entra ID avec l’interface de ligne de commande Azure (Azure CLI) consultez les pages de référence pour l’identité.

Installer la bibliothèque d’authentification Microsoft

  1. Installez la bibliothèque d’authentification Microsoft (MSAL). Cette bibliothèque vous permet d’acquérir des jetons de sécurité auprès de l’identité Microsoft pour authentifier des utilisateurs.

  2. Vous pouvez utiliser la bibliothèque de client d’identité Azure Python disponible qui utilise MSAL pour fournir une prise en charge de l’authentification par jeton. Installez cette bibliothèque en utilisant pip :

pip install azure-identity

Créer un script Python en utilisant Microsoft Entra ID

  1. Créez un fichier texte, ajoutez le script suivant, puis enregistrez le fichier sous PythonApplication1.py.

  2. Remplacez <Your Host Name> par la valeur provenant de votre instance Azure Cache pour Redis. Le nom de votre hôte est de la forme <DNS name>.redis.cache.windows.net.

  3. Remplacez <Your Username> par les valeurs provenant de votre utilisateur 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()
    
  4. Avant d’exécuter votre code Python depuis un terminal, veillez à autoriser le terminal à utiliser Microsoft Entra ID.

    azd auth login

  5. Exécutez PythonApplication1.py avec Python. Vous devez obtenir des résultats tels que l’exemple suivant :

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

Créer un script Python utilisant la réauthentification

Les jetons d’accès Microsoft Entra ID ont des durées de vie limitées, en moyenne 75 minutes. Pour maintenir une connexion à votre cache, vous devez actualiser le jeton. Cet exemple montre comment procéder en utilisant Python.

  1. Créez un fichier texte et ajoutez-y le script suivant. Ensuite, enregistrez le fichier en tant que PythonApplication2.py.

  2. Remplacez <Your Host Name> par la valeur provenant de votre instance Azure Cache pour Redis. Le nom de votre hôte est de la forme <DNS name>.redis.cache.windows.net.

  3. Remplacez <Your Username> par les valeurs provenant de votre utilisateur 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()
    
  4. Exécutez PythonApplication2.py avec Python. Vous devez obtenir des résultats tels que l’exemple suivant :

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

    Contrairement au premier exemple, si votre jeton expire, cet exemple l’actualise automatiquement.

Nettoyer les ressources

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

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

Important

La suppression d’un groupe de ressources est irréversible. Quand vous supprimez un groupe de ressources, toutes les ressources qu’il contient 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 contenant des ressources que vous souhaitez conserver, vous pouvez supprimer chaque ressource individuellement, au lieu de supprimer l’intégralité du groupe de ressources.

Pour supprimer un groupe de ressources

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

  2. Recherchez le groupe de ressources à supprimer.

    S’il existe de nombreux groupes de ressources, utilisez la zone Filtrer pour n’importe quel champ..., tapez le nom du groupe de ressources que vous avez créé pour cet article. Sélectionnez le groupe de ressources dans la liste des résultats.

    Capture d’écran montrant une liste de groupes de ressources à supprimer dans le volet de travail.

  3. Sélectionnez Supprimer le groupe de ressources.

  4. Vous êtes invité à confirmer la suppression du groupe de ressources. Saisissez le nom de votre groupe de ressources pour confirmer, puis sélectionnez Supprimer.

    Capture d’écran montrant un formulaire qui demande le nom de la ressource pour confirmer la suppression.

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