Início Rápido: Utilizar a Cache do Azure para Redis no Python
Neste Guia de início rápido, você incorpora o Cache Redis do Azure em um script Python para ter acesso a um cache dedicado e seguro acessível a partir de qualquer aplicativo no Azure.
Saltar para o código no GitHub
Se você quiser pular diretamente para o código, consulte o início rápido do Python no GitHub.
Pré-requisitos
- Subscrição do Azure - crie uma gratuitamente
- Python 3
- Para macOS ou Linux, faça o download do python.org.
- Para o Windows 11, utilize a Loja Windows.
Criar uma instância do 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 Redis do Azure na caixa de pesquisa. Em seguida, selecione Criar.
Na página Novo Cache Redis, defina as configurações do cache.
Definição Escolher um valor Description Subscrição Drop-down e selecione sua assinatura. A assinatura sob a qual criar essa nova instância do Cache do Azure para Redis. Grupo de recursos Drop-down e selecione um grupo de recursos, ou selecione Criar novo e insira um novo nome de grupo de recursos. Nome do grupo de recursos no qual criar o cache e outros recursos. Ao colocar todos os recursos do seu aplicativo em um grupo de recursos, você pode facilmente gerenciá-los ou excluí-los juntos. Nome DNS Introduza um nome exclusivo. O nome do cache deve ser uma cadeia de caracteres entre 1 e 63 caracteres que contenha apenas números, letras ou hífenes. O nome deve começar e terminar com um número ou letra e não pode conter hífenes consecutivos. O nome de host da instância de cache é <DNS name.redis.cache.windows.net>. Location Drop-down e selecione um local. Selecione uma região perto de outros serviços que usam seu cache. Cache SKU Drop-down e selecione um SKU. A SKU determina os parâmetros de tamanho, desempenho e recursos disponíveis para o cache. Para obter mais informações, consulte Visão geral do Cache do Azure para Redis. Tamanho do cache Drop-down e selecione um tamanho do seu cache Para obter mais informações, consulte Visão geral do Cache do Azure para Redis. Selecione a guia Rede ou selecione o botão Rede na parte inferior da página.
Na guia Rede, selecione seu método de conectividade.
Selecione a guia Avançar: Avançado ou selecione o botão Avançar: 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, a Autenticação do Microsoft Entra está habilitada e a Autenticação de Chaves de Acesso está desabilitada.
- Para caches Basic ou Standard, você pode escolher a seleção para uma porta não-TLS.
- Para caches Standard e Premium, você pode optar por habilitar zonas de disponibilidade. Não é possível desativar as 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 uma segurança ideal, a Microsoft recomenda o uso do Microsoft Entra ID com identidades gerenciadas para autorizar solicitações em seu cache sempre que possível. A autorização com ID do Microsoft Entra e identidades gerenciadas oferece segurança superior e facilidade de uso em relação à autorização de chave compartilhada. Para obter mais informações sobre como usar identidades gerenciadas com seus caches, consulte Usar a ID do Microsoft Entra para autenticação de cache.
Selecione a guia Next: Tags ou selecione o botão Next: Tags na parte inferior da página.
Opcionalmente, na guia Marcas , insira o nome e o valor se desejar categorizar o recurso.
Selecione Rever + criar. Em Rever + criar, o Azure valida a sua configuração.
Depois que a mensagem verde Validação passada for exibida, selecione Criar.
Demora um pouco para um cache ser criado. Você pode monitorar o progresso na página Visão geral do Cache do Azure para Redis. Quando Status é exibido como Em execução, o cache está pronto para uso.
Instalar biblioteca redis-py
Redis-py é uma interface Python para o Cache do Azure para Redis. Use a ferramenta de pacotes Python, pip
, para instalar o redis-py
pacote a partir de um prompt de comando.
O exemplo a seguir usado pip3
para Python 3 para instalar redis-py
no Windows 11 a partir de um prompt de comando do administrador.
Crie um script Python para acessar seu cache
Crie um script Python para que use a ID do Microsoft Entra ou chaves de acesso para se conectar a um Cache do Azure para Redis. Recomendamos que você use o Microsoft Entra ID.
Ativar a autenticação do Microsoft Entra ID no cache
Se você já tiver um cache, primeiro deseja verificar se a Autenticação do Microsoft Entra foi habilitada. Se não, então habilite-o. Recomendamos o uso do 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 Ativar Autenticação do Microsoft Entra está marcada. Se sim, você pode seguir em frente.
Selecione Ativar Autenticação 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 à sua 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 Yes (Sim).
Importante
Quando a operação enable for concluída, os nós em sua instância de cache serão reinicializados para carregar a nova configuração. Recomendamos realizar esta operação durante a janela de manutenção ou fora do horário comercial de pico. A operação pode demorar 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.
Instalar a Biblioteca de Autenticação da Microsoft
Instale a Microsoft Authentication Library (MSAL). Essa biblioteca permite que você adquira tokens de segurança da identidade da Microsoft para autenticar usuários.
Você pode usar a biblioteca de cliente de identidade do Python Azure disponível que usa o MSAL para fornecer suporte à autenticação de token. Instale esta biblioteca usando
pip
:
pip install azure-identity
Criar um script Python usando o Microsoft Entra ID
Crie um novo arquivo de texto, adicione o seguinte script e salve o arquivo como
PythonApplication1.py
.Substitua
<Your Host Name>
pelo valor da sua instância do Cache do Azure para Redis. Seu nome de host é do formato<DNS name>.redis.cache.windows.net
.Substitua
<Your Username>
pelos valores do 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 o código Python a partir de um Terminal, certifique-se de que autoriza o terminal a utilizar o Microsoft Entra ID.
azd auth login
Execute
PythonApplication1.py
com Python. Você deve ver resultados como o exemplo a seguir:
Criar um script Python usando reautenticação
Os tokens de acesso do Microsoft Entra ID têm vida útil limitada, com uma média de 75 minutos. Para manter uma conexão com seu cache, você precisa atualizar o token. Este 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
<Your Host Name>
pelo valor da sua instância do Cache do Azure para Redis. Seu nome de host é do formato<DNS name>.redis.cache.windows.net
.Substitua
<Your Username>
pelos valores do 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 o exemplo a seguir:Ao contrário do primeiro exemplo, se o token expirar, este exemplo o atualiza automaticamente.
Clean up resources (Limpar recursos)
Se quiser continuar a usar os recursos criados neste artigo, mantenha o grupo de recursos.
Caso contrário, se tiver terminado os recursos, pode eliminar o grupo de recursos do Azure que criou para evitar cobranças.
Importante
A eliminação de um grupo de recursos é irreversível. Quando elimina um grupo de recursos, todos os recursos nele contidos são eliminados permanentemente. Confirme que não elimina acidentalmente o grupo de recursos ou recursos errados. Se você criou os recursos dentro de um grupo de recursos existente que contém recursos que deseja manter, poderá excluir cada recurso individualmente em vez de excluir o grupo de recursos.
Para eliminar um grupo de recursos
Inicie sessão no Portal do Azure e selecione Grupos de recursos.
Selecione o grupo de recursos que pretende eliminar.
Se houver muitos grupos de recursos, use a caixa Filtrar para qualquer campo... , digite o nome do grupo de recursos criado para este artigo. Selecione o grupo de recursos na lista de resultados.
Selecione Eliminar grupo de recursos.
É-lhe pedido que confirme a eliminação do grupo de recursos. Escreva o nome do grupo de recursos para confirmar e, em seguida, selecione Eliminar.
Após alguns instantes, o grupo de recursos e todos os respetivos recursos são eliminados.