Início Rápido: Usar o Cache do Azure para Redis no Python
Neste início rápido, você incorpora o Cache do Azure para Redis em um script Python para ter acesso a um cache dedicado e seguro que pode ser acessado de qualquer aplicativo no Azure.
Pular para o código no GitHub
Se você quiser pular diretamente para o código, confira o Guia de início rápido do Python no GitHub.
Pré-requisitos
- Assinatura do Azure - criar uma gratuitamente
- Python 3
- Para macOS ou Linux, baixe de python.org.
- Para Windows 11, use a Windows Store.
Criar uma instância de Cache do Azure para Redis
Para criar um cache, entre no portal do Azure e selecione Criar um recurso.
Na página Introdução, digite Cache do Azure para Redis na caixa de pesquisa. Em seguida, selecione Criar.
Na página Novo Cache Redis, defina as configurações para o cache.
Configuração Escolher um valor Descrição Assinatura Clique na lista suspensa e selecione sua assinatura. A assinatura na qual essa nova instância do Cache do Azure para Redis será criada. Grupo de recursos Clique na lista suspensa e selecione um grupo de recursos ou selecione Criar e insira um novo nome de grupo de recursos. Nome do grupo de recursos no qual o cache e outros recursos serão criados. Ao colocar todos os seus recursos de aplicativos em um só grupo de recursos, você pode gerenciá-los ou excluí-los juntos com facilidade. Nome DNS Insira um nome exclusivo. O nome do cache deve conter de 1 a 63 caracteres e incluir somente números, letras ou hifens. O nome precisa começar e terminar com um número ou uma letra e não pode conter hifens consecutivos. O nome do host da instância de cache será <nome DNS>.redis.cache.windows.net. Localidade Clique na lista suspensa e selecione uma localização. Selecione uma região perto de outros serviços que usam o seu cache. Cache SKU Selecione no menu suspenso um SKU. O SKU determina os parâmetros de tamanho, desempenho e recursos disponíveis para o cache. Para obter mais informações, confira Visão geral do Cache do Azure para Redis. Tamanho do cache Selecionar o tamanho do cache no menu suspenso Para obter mais informações, confira Visão geral do Cache do Azure para Redis. Selecione a guia Rede ou o botão Rede na parte inferior da página.
Na guia Rede, escolha o método de conectividade.
Selecione a guia Próximo: Avançado ou o botão Próximo: Avançado na parte inferior da página para ver a guia Avançado.
- Por padrão, para um novo cache Básico, Standard ou Premium, aAutenticação do Microsoft Entra está habilitado e a Autenticação de Chaves de Acesso está desabilitada.
- Para caches Básico ou Standard, é possível escolher a seleção de uma porta não TLS.
- Para caches Standard e Premium, é possível optar por habilitar zonas de disponibilidade. Não é possível desabilitar zonas de disponibilidade após a criação do cache.
- Para um cache Premium, defina as configurações para porta não TLS, clustering, identidade gerenciada e persistência de dados.
Importante
Para obter segurança ideal, a Microsoft recomenda usar o Microsoft Entra ID com identidades gerenciadas para autorizar solicitações no cache sempre que possível. A autorização com o Microsoft Entra ID e identidades gerenciadas oferece ima segurança e facilidade de uso de qualidade superior à da autorização por Chave Compartilhada. Para obter mais informações sobre como usar identidades gerenciadas com seus caches, confira Usar o Microsoft Entra ID para autenticação de cache.
Selecione a guia Próximo: Marcas ou o botão Próximo: Marcas na parte inferior da página.
Opcionalmente, na guia Marcas, insira o nome e o valor caso deseje categorizar o recurso.
Selecione Examinar + criar. Na Revisão + criação, o Azure valida a sua configuração.
Depois que a mensagem em verde Validação aprovada for exibida, selecione Criar.
A criação do cache demora um pouco. Monitore o progresso na página Visão Geral do Cache do Azure para Redis. Quando o Status for mostrado como Em execução, o cache estará pronto para uso.
Instalar a biblioteca redis-py
Redis-py é uma interface de Python para o Cache do Azure para Redis. Use a ferramenta de pacotes do Python, pip
, para instalar o pacote redis-py
com um prompt de comando.
O exemplo a seguir usa pip3
para Python 3 para instalar o redis-py
no Windows 11 por meio de um prompt de comando do administrador.
Crie um script Python para acessar seu cache
Crie um script Python que use o Microsoft Entra ID ou chaves de acesso para se conectar a um Cache do Azure para Redis. Recomendamos que você use o Microsoft Entra ID.
Habilitar a autenticação do Microsoft Entra no seu cache
Se você já tiver um cache, primeiro verifique se a autenticação do Microsoft Entra foi habilitada. Caso contrário, habilite-a. É recomendável usar o Microsoft Entra ID para seus aplicativos.
No portal do Azure, selecione a instância do Cache do Azure para Redis onde você gostaria de usar a autenticação baseada em token do Microsoft Entra.
Selecione Autenticação no menu Recurso.
Verifique no painel de trabalho se a opção Habilitar Autenticação do Microsoft Entra está marcada. Nesse caso, você pode seguir em frente.
Selecione Habilitar Autenticação do Microsoft Entra e insira o nome de um usuário válido. O usuário inserido recebe automaticamente a Política de Acesso do Proprietário de Dados por padrão quando você seleciona Salvar. Você também pode inserir uma identidade gerenciada ou uma entidade de serviço para se conectar à instância de cache.
Uma caixa de diálogo pop-up é exibida perguntando se você deseja atualizar sua configuração e informando que leva vários minutos. Selecione Sim.
Importante
Após a operação de habilitação ter sido concluída, os nós na sua instância de cache serão reinicializados para carregar a nova configuração. Recomendamos executar essa operação durante sua janela de manutenção ou fora do seu horário comercial de pico. Essa operação pode levar até 30 minutos.
Para obter informações sobre como usar o Microsoft Entra ID com a CLI do Azure, consulte as páginas de referências para identidade.
Instale a Biblioteca de Autenticação da Microsoft
Instale a Biblioteca de Autenticação da Microsoft (MSAL). Esta biblioteca permite adquirir tokens de segurança da identidade da Microsoft para autenticar usuários.
Você pode usar a Biblioteca de clientes de identidade do Python Azure disponível que usa MSAL para fornecer suporte de autenticação de token. Instale esta biblioteca usando
pip
:
pip install azure-identity
Crie um script Python usando o Microsoft Entra ID
Crie um novo arquivo de texto, adicione o script a seguir e salve o arquivo como
PythonApplication1.py
.Substitua o
<Your Host Name>
pelo valor da sua instância do Cache do Azure para Redis. O nome do seu host é da forma<DNS name>.redis.cache.windows.net
.Substitua o
<Your Username>
pelos valores do seu usuário do 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()
Antes de executar seu código Python em um Terminal, certifique-se de autorizar o terminal para usar o Microsoft Entra ID.
azd auth login
Execute
PythonApplication1.py
com Python Você deve ver resultados como os do exemplo a seguir:
Crie um script Python usando a reautenticação
Os tokens de acesso do Microsoft Entra ID têm vida útil limitada, em média 75 minutos. Para manter uma conexão com o seu cache, você precisa atualizar o token. Esse exemplo demonstra como fazer isso usando Python.
Crie um novo arquivo de texto, adicione o seguinte script. Em seguida, salve o arquivo como
PythonApplication2.py
.Substitua o
<Your Host Name>
pelo valor da sua instância do Cache do Azure para Redis. O nome do seu host é da forma<DNS name>.redis.cache.windows.net
.Substitua o
<Your Username>
pelos valores do seu usuário do 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()
Execute
PythonApplication2.py
com Python Você deve ver resultados como os do exemplo a seguir:Ao contrário do primeiro exemplo, se o seu token expirar, esse exemplo o atualizará automaticamente.
Limpar os recursos
Se quiser continuar a usar os recursos que você criou neste artigo, conserve o grupo de recursos.
Caso contrário, se não pretende mais usar os recursos, você poderá excluir o grupo de recursos criado no Azure para evitar a cobrança.
Importante
A exclusão de um grupo de recursos é irreversível. Ao excluir o grupo de recursos, todos os recursos nele são excluídos permanentemente. Não exclua acidentalmente o grupo de recursos ou os recursos incorretos. Se você criou os recursos dentro de um grupo de recursos existente que contém recursos que você quer manter, você pode excluir cada recurso individualmente em vez de excluir o grupo de recursos.
Para excluir um grupo de recursos
Entre no portal do Azure e selecione Grupos de recursos.
Selecione o grupo de recursos que você quer excluir.
Se existirem muitos grupos de recursos, use a caixa Filtrar para qualquer campo... e digite o nome do seu grupo de recursos que você criou para este artigo. Selecione o grupo de recursos na lista de resultados.
Selecione Excluir grupo de recursos.
Você receberá uma solicitação para confirmar a exclusão do grupo de recursos. Digite o nome do grupo de recursos para confirmar e selecione Excluir.
Após alguns instantes, o grupo de recursos, e todos os recursos nele são excluídos.