Compartilhar via


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

Criar uma instância de Cache do Azure para Redis

  1. Para criar um cache, entre no portal do Azure e selecione Criar um recurso.

    Criar um recurso está realçado no painel de navegação esquerdo.

  2. Na página Introdução, digite Cache do Azure para Redis na caixa de pesquisa. Em seguida, selecione Criar.

    Captura de tela do Azure Marketplace com o Cache do Azure para Redis na caixa de pesquisa e a criação é realçada com uma caixa vermelha.

  3. 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.
  4. Selecione a guia Rede ou o botão Rede na parte inferior da página.

  5. Na guia Rede, escolha o método de conectividade.

  6. 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.

    Captura de tela mostrando a guia Avançado no painel de trabalho e a opção disponível para seleção.

    • 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.

  7. Selecione a guia Próximo: Marcas ou o botão Próximo: Marcas na parte inferior da página.

  8. Opcionalmente, na guia Marcas, insira o nome e o valor caso deseje categorizar o recurso.

  9. Selecione Examinar + criar. Na Revisão + criação, o Azure valida a sua configuração.

  10. 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.

Captura de tela de um terminal mostrando uma instalação da interface redis-py para Cache do Azure para Redis.

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.

  1. 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.

  2. Selecione Autenticação no menu Recurso.

  3. Verifique no painel de trabalho se a opção Habilitar Autenticação do Microsoft Entra está marcada. Nesse caso, você pode seguir em frente.

  4. 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.

    Captura de tela que mostra a autenticação selecionada no menu de recursos e a opção marcada para habilitar a autenticação do Microsoft Entra.

  5. 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

  1. 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.

  2. 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

  1. Crie um novo arquivo de texto, adicione o script a seguir e salve o arquivo como PythonApplication1.py.

  2. 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.

  3. 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()
    
  4. 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

  5. Execute PythonApplication1.py com Python Você deve ver resultados como os do exemplo a seguir:

    Captura de tela de um terminal mostrando um script Python para testar o acesso ao cache.

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.

  1. Crie um novo arquivo de texto, adicione o seguinte script. Em seguida, salve o arquivo como PythonApplication2.py.

  2. 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.

  3. 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()
    
  4. Execute PythonApplication2.py com Python Você deve ver resultados como os do exemplo a seguir:

    Captura de tela de um terminal mostrando um script Python para testar o acesso ao cache.

    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

  1. Entre no portal do Azure e selecione Grupos de recursos.

  2. 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.

    Captura de tela mostrando uma lista dos grupos de recursos a serem excluídos no painel de trabalho.

  3. Selecione Excluir grupo de recursos.

  4. 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.

    Captura de tela mostrando um formulário que requer que a exclusão do nome do recurso seja confirmada.

Após alguns instantes, o grupo de recursos, e todos os recursos nele são excluídos.