Démarrage rapide : Utiliser Azure Redis avec Python
Dans ce guide de démarrage rapide, vous incorporez Redis managé Azure (préversion) ou Azure Cache pour Redis dans un script 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
- Abonnement Azure : créez-en un gratuitement
- Python 3
- Pour macOS ou Linux, téléchargez à partir de python.org.
- Pour Windows 11, utilisez le Windows Store.
Créer une instance Redis managé Azure (préversion)
Pour créer une instance Redis managé Azure (préversion), connectez-vous au portail Azure, puis sélectionnez Créer une ressource.
Dans la page Nouveau, dans la zone de recherche, tapez Azure Cache pour Redis.
Dans la page Nouveau cache Redis, configurez les paramètres du nouveau cache.
Paramètre Choisir une valeur Description Abonnement Dans la liste déroulante, sélectionnez votre abonnement. L’abonnement sous lequel créer cette nouvelle instance Redis managé Azure. 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 dans la région. Le nom du cache doit être une chaîne de 1 à 63 caractères qui, une fois associée au nom de région du cache contient uniquement des chiffres, des lettres ou des traits d’union. (Si le nom du cache est inférieur à 45 caractères, il peut fonctionner dans toutes les régions actuellement disponibles.) 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 \<DNS name\>.\<Azure region\>.redis.azure.net
.Lieu Dans la liste déroulante, sélectionnez un emplacement. Redis managé Azure est disponible dans certaines régions Azure. Type de cache Utilisez la liste déroulante pour sélectionner le niveau de performance et la taille du cache. Le niveau détermine les performances de l’instance Redis, tandis que la taille du cache détermine la mémoire disponible pour stocker les données. Pour obtenir de l’aide pour choisir le niveau de performance approprié, consultez Choix du niveau approprié Sélectionnez Suivant : Mise en réseau pour configurer un point de terminaison public ou privé.
Sélectionnez Suivant : Avancé.
Configurez les modules Redis que vous voulez ajouter à l’instance.
Par défaut, pour un nouveau cache managé :
- Microsoft Entra ID est activé.
- L’authentification avec des clés d’accès est désactivée pour des raisons de sécurité.
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.
Définissez la stratégie de clustering sur Enterprise pour un cache non cluster ou sur OSS pour un cache en cluster. Pour plus d’informations sur le choix d’une stratégie de clustering, consultez Stratégie de clustering.
Si vous utilisez la géoréplication active, celle-ci doit être configurée pendant la création. Pour plus d’informations, consultez Configurer la géoréplication active pour les instances d’Azure Managed Redis.
Important
Vous ne pouvez pas modifier la stratégie de clustering d’une instance Redis managé Azure (préversion) après l’avoir créée. Si vous utilisez RediSearch, la stratégie de cluster Entreprise est requise et
NoEviction
est la seule stratégie d’éviction prise en charge.Important
Si vous utilisez cette instance de cache dans un groupe de géoréplication, les stratégies d’éviction ne peuvent pas être modifiées une fois l’instance créée. Veillez à connaître les stratégies d’éviction de vos nœuds principaux avant de créer le cache. Pour plus d’informations sur la géoréplication active, consultez les Prérequis à la géoréplication active.
Important
Vous ne pouvez pas modifier les modules après avoir créé une instance de cache. Les modules doivent être activés au moment où vous créez une instance Azure Cache pour Redis. Il n’existe aucune option permettant d’activer la configuration d’un module après avoir créé un cache.
Sélectionnez Suivant : Étiquettes et ignorez.
Sélectionnez Suivant : Vérifier + créer.
Passez en revue les paramètres, puis sélectionnez Créer.
La création de l’instance Redis prend plusieurs minutes. Vous pouvez suivre la progression sur la page Vue d’ensemble de Redis managé Azure. Lorsque État indique En cours d’exécution, le cache est prêt pour utilisation.
Créer une instance Cache Redis Azure
Pour créer un cache, connectez-vous au Portail Azure. Dans le menu du portail, sélectionnez Créer une ressource.
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.
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. Sélectionnez l’onglet Mise en réseau ou sélectionnez Suivant : Mise en réseau.
Sous l’onglet Mise en réseau, sélectionnez une méthode de connectivité à utiliser pour le cache.
Sélectionnez l’onglet Avancé ou sélectionnez Suivant : avancé.
Dans le volet Avancé, vérifiez ou sélectionnez une méthode d’authentification en fonction des informations suivantes :
- 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.
(Facultatif) Sélectionnez l’onglet Étiquettes ou sélectionnez Suivant : Étiquettes.
(Facultatif) Sous l’onglet Étiquettes, entrez un nom et une valeur d’étiquette si vous voulez catégoriser votre ressource de cache.
Sélectionnez le bouton Vérifier + Créer.
Sous l’onglet Vérifier et créer, Azure vérifie automatiquement votre configuration.
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 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.
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 à votre instance Redis managé Azure (préversion). Nous vous recommandons Microsoft Entra ID.
Utiliser l’authentification Microsoft Entra ID sur votre cache
Les caches Azure pour Redis, à l’exclusion des niveaux Enterprise et Enterprise Flash, ont l’authentification Microsoft Entra activée par défaut. Les clés d’accès sont désactivées par défaut.
Important
Pour bénéficier de l’expérience d’authentification la plus sécurisée, Microsoft recommande d’utiliser l’authentification Microsoft Entra ID plutôt que des mots de passe ou des clés d’accès. L’authentification décrite dans cette section de l’article utilise des clés d’accès, ce qui requiert un très haut niveau de confiance dans l’application et présente des risques qui n’existent pas quand vous utilisez Microsoft Entra ID. Utilisez l’approche décrite dans ce document seulement si l’authentification Microsoft Entra ID n’est pas viable.
Dans le portail Azure, sélectionnez le cache pour lequel vous voulez utiliser l’authentification basée sur des jetons Microsoft Entra.
Dans le menu Ressource, sélectionnez Authentification.
Sélectionnez Sélectionner un membre et 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.
Pour obtenir des informations sur l’utilisation de Microsoft Entra ID avec Azure CLI, consultez les pages de référence sur l’identité.
Installer la bibliothèque d’authentification Microsoft
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.
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
Créez un fichier texte, ajoutez le script suivant, puis enregistrez le fichier sous
PythonApplication1.py
.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>.<region>.redis.azure.net
.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 = 10000 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()
Avant d’exécuter votre code Python depuis un terminal, veillez à autoriser le terminal à utiliser Microsoft Entra ID.
azd auth login
Exécutez
PythonApplication1.py
avec Python. Vous devez obtenir des résultats tels que l’exemple suivant :
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.
Créez un fichier texte et ajoutez-y le script suivant. Ensuite, enregistrez le fichier en tant que
PythonApplication2.py
.Remplacez
<Your Host Name>
par la valeur provenant de votre instance Redis managé Azure (préversion). Le nom de votre hôte est de la forme<DNS name>.<region>.redis.azure.net
.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 = 10000 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()
Exécutez
PythonApplication2.py
avec Python. Vous devez obtenir des résultats tels que l’exemple suivant :Contrairement au premier exemple, si votre jeton expire, cet exemple l’actualise automatiquement.
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 à votre instance Redis. Nous vous recommandons Microsoft Entra ID.
Utiliser l’authentification Microsoft Entra ID sur votre cache
Les caches Azure pour Redis, à l’exclusion des niveaux Enterprise et Enterprise Flash, ont l’authentification Microsoft Entra activée par défaut. Les clés d’accès sont désactivées par défaut.
Important
Pour bénéficier de l’expérience d’authentification la plus sécurisée, Microsoft recommande d’utiliser l’authentification Microsoft Entra ID plutôt que des mots de passe ou des clés d’accès. L’authentification décrite dans cette section de l’article utilise des clés d’accès, ce qui requiert un très haut niveau de confiance dans l’application et présente des risques qui n’existent pas quand vous utilisez Microsoft Entra ID. Utilisez l’approche décrite dans ce document seulement si l’authentification Microsoft Entra ID n’est pas viable.
Dans le portail Azure, sélectionnez le cache pour lequel vous voulez utiliser l’authentification basée sur des jetons Microsoft Entra.
Dans le menu Ressource, sélectionnez Authentification.
Sélectionnez Sélectionner un membre et 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.
Pour obtenir des informations sur l’utilisation de Microsoft Entra ID avec Azure CLI, consultez les pages de référence sur l’identité.
Installer la bibliothèque d’authentification Microsoft
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.
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
Créez un fichier texte, ajoutez le script suivant, puis enregistrez le fichier sous
PythonApplication1.py
.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
.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()
Avant d’exécuter votre code Python depuis un terminal, veillez à autoriser le terminal à utiliser Microsoft Entra ID.
azd auth login
Exécutez
PythonApplication1.py
avec Python. Vous devez obtenir des résultats tels que l’exemple suivant :
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.
Créez un fichier texte et ajoutez-y le script suivant. Ensuite, enregistrez le fichier en tant que
PythonApplication2.py
.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
.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()
Exécutez
PythonApplication2.py
avec Python. Vous devez obtenir des résultats tels que l’exemple suivant :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
Connectez-vous au Portail Azure, puis sélectionnez Groupes de ressources.
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.
Sélectionnez Supprimer le groupe de ressources.
Vous êtes invité à confirmer la suppression du groupe de ressources. Saisissez le nom de votre groupe de ressources pour confirmer, puis sélectionnez Supprimer.
Après quelques instants, le groupe de ressources et toutes ses ressources sont supprimés.