Guida introduttiva: Usare Azure Redis in Python
In questa guida introduttiva si incorpora Azure Managed Redis (anteprima) o cache di Azure per Redis in uno script Python per avere accesso a una cache sicura e dedicata accessibile da qualsiasi applicazione all'interno di Azure.
Passare al codice in GitHub
Se si vuole passare direttamente al codice, vedere l’Avvio rapido di Python in GitHub.
Prerequisiti
- Sottoscrizione di Azure: creare un account gratuito
- Python 3
- Per macOS o Linux, effettuare il download da python.org.
- Per Windows 11, usare Windows Store.
Creare un'istanza di Redis gestita di Azure (anteprima)
Per creare un'istanza di Redis gestita di Azure (anteprima), accedere al portale di Azure e selezionare Crea una risorsa.
Nella casella di ricerca della pagina Nuovo digitare cache di Azure per Redis.
Nella pagina Nuova cache Redis configurare le impostazioni per la nuova cache.
Impostazione Scegliere un valore Descrizione Abbonamento Nell'elenco a discesa selezionare la sottoscrizione. Sottoscrizione in cui creare questa nuova istanza di Redis gestita di Azure. Gruppo di risorse Nell'elenco a discesa selezionare un gruppo di risorse oppure scegliere Crea nuovo e immettere il nome di un nuovo gruppo di risorse. Nome del gruppo di risorse in cui creare la cache e altre risorse. L'inserimento di tutte le risorse di un'app in un unico gruppo di risorse ne semplifica la gestione o l'eliminazione. Nome DNS Immettere un nome univoco nell'area. Il nome della cache deve essere una stringa compresa tra 1 e 63 caratteri in combinazione con il nome dell'area della cache che contiene solo numeri, lettere o trattini. Se il nome della cache è composto da meno di 45 caratteri, deve funzionare in tutte le aree attualmente disponibili. Il nome deve iniziare e terminare con un numero o una lettera e non può contenere trattini consecutivi. Il nome host dell'istanza della cache è \<DNS name\>.\<Azure region\>.redis.azure.net
.Location Nell'elenco a discesa selezionare una località. Redis gestito di Azure è disponibile nelle aree di Azure selezionate. Tipo di cache A discesa e selezionare il livello di prestazioni e le dimensioni della cache. Il livello determina le prestazioni dell'istanza di Redis, mentre le dimensioni della cache determinano la memoria disponibile per archiviare i dati. Per indicazioni sulla scelta del livello di prestazioni corretto, vedere Scelta del livello corretto Selezionare Avanti: Rete e selezionare un endpoint pubblico o privato.
Al termine, selezionare Avanti: Avanzate.
Configurare tutti i moduli Redis da aggiungere all'istanza.
Per impostazione predefinita, per una nuova cache gestita:
- L'ID Microsoft Entra è abilitato.
- L'autenticazione delle chiavi di accesso è disabilitata per motivi di sicurezza.
Importante
Per una protezione ottimale, è consigliabile usare Microsoft Entra ID con identità gestite per autorizzare le richieste nella cache ogni volta che è possibile. L'autorizzazione tramite Microsoft Entra ID e le identità gestite offre sicurezza e facilità d'uso superiori rispetto all'autorizzazione con chiave di accesso condiviso. Per altre informazioni sull'uso delle identità gestite con le cache, vedere Usare Microsoft Entra ID per l'autenticazione della cache.
Impostare i criteri di clustering su Enterprise per una cache non cluster o su OSS per una cache in cluster. Per altre informazioni sulla scelta dei criteri di clustering, vedere Criteri del cluster.
Se si usa la replica geografica attiva, è necessario configurarla durante la creazione. Per altre informazioni, vedere Configurare la replica geografica attiva per le istanze di Redis gestite di Azure.
Importante
Non è possibile modificare i criteri di clustering di un'istanza di Redis gestita di Azure (anteprima) dopo averla creata. Se si usa RediSearch, è necessario il criterio cluster Enterprise ed
NoEviction
è l'unico criterio di rimozione supportato.Importante
Se si usa questa istanza della cache in un gruppo di replica geografica, non è possibile modificare i criteri di rimozione dopo la creazione dell'istanza. Assicurarsi di conoscere i criteri di rimozione dei nodi primari prima di creare la cache. Per altre informazioni sulla replica geografica attiva, vedere Prerequisiti per la replica geografica attiva.
Importante
Non è possibile modificare i moduli dopo aver creato un'istanza della cache. I moduli devono essere abilitati al momento della creazione di un'istanza di cache di Azure per Redis. Non è possibile abilitare la configurazione di un modulo dopo la creazione di una cache.
Selezionare Avanti: Tag e ignorare.
Selezionare Avanti: Rivedi e crea.
Rivedere le impostazioni e selezionare Crea.
La creazione dell'istanza di Redis richiede alcuni minuti. È possibile monitorare lo stato di avanzamento nella pagina Panoramica di Redis gestita di Azure. Quando l'elemento Stato indica In esecuzione, la cache è pronta per l'uso.
Creare un'istanza di Azure Cache per Redis
Per creare una cache, accedere al portale di Azure. Nel menu del portale selezionare Crea una risorsa.
Nel riquadro Attività iniziali immettere Cache di Azure per Redis nella barra di ricerca. Nei risultati della ricerca trovare Cache di Azure per Redis e quindi selezionare Crea.
Nel riquadro Nuova cache Redis, nella scheda Informazioni di base configurare le impostazioni seguenti per la cache:
Impostazione Azione Descrizione Abbonamento Seleziona la tua sottoscrizione di Azure. Sottoscrizione da usare per creare la nuova istanza della cache di Azure per Redis. Gruppo di risorse Selezionare un gruppo di risorse oppure selezionare Crea nuovo e immettere un nuovo nome del gruppo di risorse. Nome del gruppo di risorse in cui creare la cache e altre risorse. L'inserimento di tutte le risorse di un'app in un unico gruppo di risorse ne semplifica la gestione o l'eliminazione. Nome DNS Immettere un nome univoco. Il nome della cache deve essere una stringa compresa tra 1 e 63 caratteri contenente solo numeri, lettere o trattini. Il nome deve iniziare e terminare con un numero o una lettera e non può contenere trattini consecutivi. Il nome host dell'istanza della cache è \<DNS name>.redis.cache.windows.net
.Location Selezionare una località. Un'area di Azure vicina ad altri servizi che usano la cache. SKU della cache Selezionare uno SKU. Lo SKU determina le dimensioni, le prestazioni e i parametri delle funzionalità disponibili per la cache. Per altre informazioni, vedere la panoramica su Cache Redis di Azure. Dimensioni della cache Selezionare le dimensioni della cache. Per altre informazioni, vedere la panoramica su Cache Redis di Azure. Selezionare la scheda Rete oppure selezionare Avanti: Rete.
Nella scheda Rete selezionare un metodo di connettività da usare per la cache.
Selezionare la scheda Avanzate o Avanti: Avanzate.
Nel riquadro Avanzate verificare o selezionare un metodo di autenticazione in base alle informazioni seguenti:
- Per impostazione predefinita, per una nuova cache Basic, Standard o Premium, l'Autenticazione di Microsoft Entra è abilitata e l'Autenticazione delle chiavi di accesso è disabilitata.
- Per le cache Basic o Standard, è possibile scegliere la selezione di una porta non TLS.
- Per le cache Standard e Premium, è possibile scegliere di abilitare le zone di disponibilità. Non è possibile disabilitare le zone di disponibilità dopo la creazione della cache.
- Per una cache Premium, configurare le impostazioni per la porta non TLS, il clustering, l'identità gestita e la persistenza dei dati.
Importante
Per una protezione ottimale, è consigliabile usare Microsoft Entra ID con identità gestite per autorizzare le richieste nella cache ogni volta che è possibile. L'autorizzazione tramite Microsoft Entra ID e le identità gestite offre sicurezza e facilità d'uso superiori rispetto all'autorizzazione con chiave di accesso condiviso. Per altre informazioni sull'uso delle identità gestite con le cache, vedere Usare Microsoft Entra ID per l'autenticazione della cache.
(Facoltativo) Selezionare la scheda Tag o selezionare Avanti: Tag.
(Facoltativo) Nella scheda Tag immettere un nome e un valore di tag per classificare la risorsa della cache.
Selezionare il pulsante Rivedi e crea.
Nella scheda Rivedi e crea Azure convalida automaticamente la configurazione.
Quando viene visualizzato il messaggio verde di Convalida superata, selezionare Crea.
Una nuova distribuzione della cache richiede diversi minuti. È possibile monitorare lo stato di avanzamento della distribuzione nel riquadro Panoramica di Cache di Azure per Redis. Quando Stato mostra In esecuzione, la cache è pronta per l'uso.
Installare la libreria redis-py
Redis-py è un'interfaccia Python per Redis. Usare lo strumento per i pacchetti Python, pip
, per installare il pacchetto redis-py
da un prompt dei comandi.
Nell'esempio seguente è stato usato pip3
per Python 3 per installare redis-py
in Windows 11 da un prompt dei comandi dell'amministratore.
Creare uno script Python per accedere alla cache
Creare uno script Python in che usi l'ID Microsoft Entra o le chiavi di accesso per connettersi all'istanza di Redis gestita di Azure (anteprima). È consigliabile usare Microsoft Entra ID.
Usare l'autenticazione di Microsoft Entra ID nella cache
Le cache Redis di Azure, ad eccezione dei livelli Enterprise e Enterprise Flash, hanno l'autenticazione di Microsoft Entra abilitata per impostazione predefinita. Le chiavi di accesso sono disabilitate per impostazione predefinita.
Importante
Microsoft consiglia di usare l'autenticazione con ID Entra di Microsoft per l'esperienza di autenticazione più sicura anziché usare password o chiavi di accesso. L'autenticazione descritta in questa sezione dell'articolo usa le chiavi di accesso, che richiedono un livello di attendibilità molto elevato nell'applicazione e comporta rischi non presenti quando si usa Microsoft Entra ID. Usare l'approccio in questo documento solo quando l'autenticazione con ID Entra di Microsoft non è valida.
Nella portale di Azure selezionare la cache in cui si vuole usare l'autenticazione basata su token di Microsoft Entra.
Selezionare Autenticazione dal menu Risorsa.
Selezionare Seleziona membro e immettere il nome di un utente valido. All'utente immesso viene assegnato automaticamente il criterio di accesso Proprietario dei dati per impostazione predefinita quando si seleziona Salva. È anche possibile immettere un'identità gestita o un'entità servizio per connettersi all'istanza della cache.
Per informazioni sull'uso di Microsoft Entra ID con l'interfaccia della riga di comando di Azure, vedere le pagine di riferimento per l'identità.
Installare Microsoft Authentication Library
Installare Microsoft Authentication Library (MSAL). Questa libreria consente di acquisire token di sicurezza dall'identità Microsoft per autenticare gli utenti.
È possibile usare la libreria client di identità di Python di Azure disponibile che usa MSAL per fornire il supporto per l'autenticazione dei token. Installare questa libreria tramite
pip
:
pip install azure-identity
Creare uno script Python usando Microsoft Entra ID
Creare un nuovo file di testo, aggiungere lo script seguente e salvare il file come
PythonApplication1.py
.Sostituire
<Your Host Name>
con il valore dell'istanza in uso della cache di Azure per Redis. Il nome host è nel formato<DNS name>.<region>.redis.azure.net
.Sostituire
<Your Username>
con i valori dell'utente di 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()
Prima di eseguire il codice Python da un terminale, assicurarsi di autorizzare il terminale per l'uso di Microsoft Entra ID.
azd auth login
Eseguire
PythonApplication1.py
con Python. Vengono visualizzati risultati simili all'esempio seguente:
Creare uno script Python usando la riautenticazione
I token di accesso a Microsoft Entra ID hanno una durata limitata, in media 75 minuti. Per mantenere una connessione alla cache, è necessario aggiornare il token. Questo esempio illustra come eseguire questa operazione usando Python.
Creare un nuovo file di testo, aggiungere lo script seguente. Salvare quindi il file come
PythonApplication2.py
.Sostituire
<Your Host Name>
con il valore dell'istanza di Redis gestita di Azure (anteprima). Il nome host è nel formato<DNS name>.<region>.redis.azure.net
.Sostituire
<Your Username>
con i valori dell'utente di 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()
Eseguire
PythonApplication2.py
con Python. Vengono visualizzati risultati simili all'esempio seguente:A differenza del primo esempio, se il token scade, in questo esempio viene aggiornato automaticamente.
Creare uno script Python per accedere alla cache
Creare uno script Python in che usi l'ID Microsoft Entra o le chiavi di accesso per connettersi all'istanza di Redis. È consigliabile usare Microsoft Entra ID.
Usare l'autenticazione di Microsoft Entra ID nella cache
Le cache Redis di Azure, ad eccezione dei livelli Enterprise e Enterprise Flash, hanno l'autenticazione di Microsoft Entra abilitata per impostazione predefinita. Le chiavi di accesso sono disabilitate per impostazione predefinita.
Importante
Microsoft consiglia di usare l'autenticazione con ID Entra di Microsoft per l'esperienza di autenticazione più sicura anziché usare password o chiavi di accesso. L'autenticazione descritta in questa sezione dell'articolo usa le chiavi di accesso, che richiedono un livello di attendibilità molto elevato nell'applicazione e comporta rischi non presenti quando si usa Microsoft Entra ID. Usare l'approccio in questo documento solo quando l'autenticazione con ID Entra di Microsoft non è valida.
Nella portale di Azure selezionare la cache in cui si vuole usare l'autenticazione basata su token di Microsoft Entra.
Selezionare Autenticazione dal menu Risorsa.
Selezionare Seleziona membro e immettere il nome di un utente valido. All'utente immesso viene assegnato automaticamente il criterio di accesso Proprietario dei dati per impostazione predefinita quando si seleziona Salva. È anche possibile immettere un'identità gestita o un'entità servizio per connettersi all'istanza della cache.
Per informazioni sull'uso di Microsoft Entra ID con l'interfaccia della riga di comando di Azure, vedere le pagine di riferimento per l'identità.
Installare Microsoft Authentication Library
Installare Microsoft Authentication Library (MSAL). Questa libreria consente di acquisire token di sicurezza dall'identità Microsoft per autenticare gli utenti.
È possibile usare la libreria client di identità di Python di Azure disponibile che usa MSAL per fornire il supporto per l'autenticazione dei token. Installare questa libreria tramite
pip
:
pip install azure-identity
Creare uno script Python usando Microsoft Entra ID
Creare un nuovo file di testo, aggiungere lo script seguente e salvare il file come
PythonApplication1.py
.Sostituire
<Your Host Name>
con il valore dell'istanza in uso della cache di Azure per Redis. Il nome host è nel formato<DNS name>.redis.cache.windows.net
.Sostituire
<Your Username>
con i valori dell'utente di 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()
Prima di eseguire il codice Python da un terminale, assicurarsi di autorizzare il terminale per l'uso di Microsoft Entra ID.
azd auth login
Eseguire
PythonApplication1.py
con Python. Vengono visualizzati risultati simili all'esempio seguente:
Creare uno script Python usando la riautenticazione
I token di accesso a Microsoft Entra ID hanno una durata limitata, in media 75 minuti. Per mantenere una connessione alla cache, è necessario aggiornare il token. Questo esempio illustra come eseguire questa operazione usando Python.
Creare un nuovo file di testo, aggiungere lo script seguente. Salvare quindi il file come
PythonApplication2.py
.Sostituire
<Your Host Name>
con il valore dell'istanza in uso della cache di Azure per Redis. Il nome host è nel formato<DNS name>.redis.cache.windows.net
.Sostituire
<Your Username>
con i valori dell'utente di 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()
Eseguire
PythonApplication2.py
con Python. Vengono visualizzati risultati simili all'esempio seguente:A differenza del primo esempio, se il token scade, in questo esempio viene aggiornato automaticamente.
Pulire le risorse
Per continuare a usare le risorse create in questo articolo, mantenere il gruppo di risorse.
In caso contrario, se le risorse sono state completate, per evitare addebiti è possibile eliminare il gruppo di risorse di Azure creato.
Importante
L'eliminazione di un gruppo di risorse è irreversibile. Quando si elimina un gruppo di risorse, tutte le risorse in esso contenute vengono eliminate in modo permanente. Assicurarsi di non eliminare accidentalmente il gruppo di risorse sbagliato o le risorse errate. Se le risorse sono state create all'interno di un gruppo di risorse esistente che contiene anche elementi da mantenere, è possibile eliminare ogni singolo elemento a sinistra anziché eliminare il gruppo di risorse.
Per eliminare un gruppo di risorse
Accedere al portale di Azure e selezionare Gruppi di risorse.
Scegliere il gruppo di risorse da eliminare.
Se sono presenti molti gruppi di risorse, usare la casella Filtro per qualsiasi campo... e digitare il nome del gruppo di risorse creato per questo articolo. Nell’elenco dei risultati selezionare il gruppo di risorse.
Selezionare Elimina gruppo di risorse.
Verrà chiesto di confermare l'eliminazione del gruppo di risorse. Digitare il nome del gruppo di risorse per confermare e quindi selezionare Elimina.
Dopo qualche istante, il gruppo di risorse e tutte le risorse che contiene vengono eliminati.