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

Criar uma instância do Cache do Azure para Redis

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

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

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

    A captura de ecrã do Azure Marketplace com o Cache Redis do Azure na caixa de pesquisa e criar está realçada com uma caixa vermelha.

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

  5. Na guia Rede, selecione seu método de conectividade.

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

    Captura de ecrã a mostrar o separador Avançadas no painel de trabalho e a opção disponível para selecionar.

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

  7. Selecione a guia Next: Tags ou selecione o botão Next: Tags na parte inferior da página.

  8. Opcionalmente, na guia Marcas , insira o nome e o valor se desejar categorizar o recurso.

  9. Selecione Rever + criar. Em Rever + criar, o Azure valida a sua configuração.

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

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

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.

  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 Ativar Autenticação do Microsoft Entra está marcada. Se sim, você pode seguir em frente.

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

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

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

  1. Instale a Microsoft Authentication Library (MSAL). Essa biblioteca permite que você adquira tokens de segurança da identidade da Microsoft para autenticar usuários.

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

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

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

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

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

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

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.

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

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

  3. 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()
    
  4. Execute PythonApplication2.py com Python. Você deve ver resultados como o 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 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

  1. Inicie sessão no Portal do Azure e selecione Grupos de recursos.

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

    Captura de ecrã a mostrar uma lista de grupos de recursos a eliminar no painel de trabalho.

  3. Selecione Eliminar grupo de recursos.

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

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

Após alguns instantes, o grupo de recursos e todos os respetivos recursos são eliminados.