Partilhar via


Guia de início rápido: usar o Azure Redis em Python

Neste Guia de início rápido, você incorpora o Azure Managed Redis (visualização) ou o Cache Redis do Azure em um script Python para ter acesso a um cache dedicado seguro e 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 Azure Managed Redis (visualização)

  1. Para criar uma instância do Azure Managed Redis (visualização), entre no portal do Azure e selecione Criar um recurso.

  2. Na página Novo, na caixa de pesquisa, digite Cache do Azure para Redis.

  3. Na página Novo Cache Redis, defina as configurações para o novo 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 Azure Managed 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 Insira um nome exclusivo na região. O nome do cache deve ser uma cadeia de caracteres entre 1 e 63 caracteres quando combinado com o nome da região do cache que contém apenas números, letras ou hífenes. (Se o nome do cache tiver menos de 45 caracteres, ele deverá funcionar em todas as regiões atualmente disponíveis.) 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\>.\<Azure region\>.redis.azure.net.
    Location Drop-down e selecione um local. O Azure Managed Redis está disponível em regiões selecionadas do Azure.
    Tipo de cache Faça uma lista suspensa e selecione a camada de desempenho e o tamanho do cache. A camada determina o desempenho da instância do Redis, enquanto o tamanho do cache determina a memória disponível para armazenar dados. Para obter orientação sobre como escolher a camada de desempenho correta, consulte Escolhendo a camada certa

    Captura de ecrã a mostrar o separador Noções básicas do Azure Managed Redis.

  4. Selecione Next: Networking e selecione um ponto de extremidade público ou privado.

  5. Selecione Next: Avançado.

    Configure todos os módulos Redis que você deseja adicionar à instância.

    Por padrão, para um novo cache gerenciado:

    • O Microsoft Entra ID está habilitado.
    • A Autenticação de Chaves de Acesso está desativada por motivos de segurança.

    Importante

    Para uma segurança ideal, recomendamos que você use o Microsoft Entra ID com identidades gerenciadas para autorizar solicitações em seu cache, se possível. A autorização usando o ID do Microsoft Entra e identidades gerenciadas oferece segurança superior e facilidade de uso em relação à autorização de chave de acesso compartilhado. Para obter mais informações sobre como usar identidades gerenciadas com seu cache, consulte Usar a ID do Microsoft Entra para autenticação de cache.

    Defina a política de Clustering como Enterprise para um cache não clusterizado ou como OSS para um cache clusterizado. Para obter mais informações sobre como escolher a política de clustering, consulte Política de cluster.

    Captura de ecrã que mostra o separador Azure Managed Redis Advanced.

    Se você estiver usando a replicação geográfica ativa, ela deverá ser configurada durante a criação. Para obter mais informações, consulte Configurar a replicação geográfica ativa para instâncias do Azure Managed Redis.

    Importante

    Não é possível alterar a política de clustering de uma instância do Azure Managed Redis (visualização) depois de criá-la. Se você estiver usando o RediSearch, a política de cluster Enterprise será necessária e NoEviction será a única política de remoção suportada.

    Importante

    Se você estiver usando essa instância de cache em um grupo de replicação geográfica, as políticas de remoção não poderão ser alteradas após a criação da instância. Certifique-se de conhecer as políticas de remoção de seus nós principais antes de criar o cache. Para obter mais informações sobre replicação geográfica ativa, consulte Pré-requisitos de replicação geográfica ativa.

    Importante

    Não é possível alterar módulos depois de criar uma instância de cache. Os módulos devem ser habilitados no momento em que você cria uma instância do Cache do Azure para Redis. Não há nenhuma opção para habilitar a configuração de um módulo depois de criar um cache.

  6. Selecione Next: Tags e skip.

  7. Selecione Seguinte: Rever + criar.

  8. Revise as configurações e selecione Criar.

    Leva vários minutos para a instância do Redis ser criada. Você pode monitorar o progresso na página Visão Geral do Redis Gerenciado do Azure. Quando Status é exibido como Em execução, o cache está pronto para uso.

Criar uma instância do Cache do Azure para Redis

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

    Sceenshot que mostra a opção Criar um recurso realçada no painel de navegação esquerdo no portal do Azure.

  2. No painel Introdução, insira Cache Redis do Azure na barra de pesquisa. Nos resultados da pesquisa, localize o Cache do Azure para Redis e selecione Criar.

    Captura de ecrã que mostra o Azure Marketplace com o Cache Redis do Azure na caixa de pesquisa e o botão Criar está realçado.

  3. No painel Novo Cache Redis, na guia Noções básicas, defina as seguintes configurações para o cache:

    Definição Ação Descrição
    Subscrição Selecione a subscrição do Azure. A assinatura a ser usada para criar a nova instância do Cache do Azure para Redis.
    Grupo de recursos Selecione um grupo de recursos ou selecione Criar novo e insira um novo nome de grupo de recursos. Um nome para o grupo de recursos no qual criar seu 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 de 1 a 63 caracteres que contenha apenas números, letras e hífenes. O nome deve começar e terminar com um número ou letra, e não pode conter hífenes consecutivas. O nome de host da instância de cache é \<DNS name>.redis.cache.windows.net.
    Location Selecione uma localização. Uma região do Azure que está perto de outros serviços que usam seu cache.
    Cache SKU Selecione uma SKU. A SKU determina o tamanho, o desempenho e os parâmetros de recurso disponíveis para o cache. Para obter mais informações, consulte Visão geral do Cache do Azure para Redis.
    Tamanho do cache Selecione um tamanho de cache. Para obter mais informações, consulte Visão geral do Cache do Azure para Redis.
  4. Selecione a guia Rede ou selecione Avançar: Rede.

  5. Na guia Rede, selecione um método de conectividade a ser usado para o cache.

  6. Selecione a guia Avançado ou selecione Avançar: Avançado.

  7. No painel Avançado, verifique ou selecione um método de autenticação com base nas seguintes informações:

    Captura de ecrã a mostrar o painel Avançado e as opções disponíveis 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, recomendamos que você use o Microsoft Entra ID com identidades gerenciadas para autorizar solicitações em seu cache, se possível. A autorização usando o ID do Microsoft Entra e identidades gerenciadas oferece segurança superior e facilidade de uso em relação à autorização de chave de acesso compartilhado. Para obter mais informações sobre como usar identidades gerenciadas com seu cache, consulte Usar a ID do Microsoft Entra para autenticação de cache.

  8. (Opcional) Selecione a guia Tags ou selecione Next: Tags.

  9. (Opcional) Na guia Marcas , insira um nome e um valor de tag se quiser categorizar seu recurso de cache.

  10. Selecione o botão Rever + criar.

    Na guia Revisão + criação, o Azure valida automaticamente sua configuração.

  11. Depois que a mensagem verde Validação passada for exibida, selecione Criar.

Uma nova implantação de cache ocorre ao longo de vários minutos. Você pode monitorar o progresso da implantação no painel Visão Geral do Cache do Azure para Redis. Quando Status exibe Em execução, o cache está pronto para uso.

Instalar biblioteca redis-py

Redis-py é uma interface Python 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 que use a ID do Microsoft Entra ou chaves de acesso para se conectar à sua instância do Azure Managed Redis (visualização). Recomendamos que você use o Microsoft Entra ID.

Usar a autenticação do Microsoft Entra ID no cache

Os caches Redis do Azure, exceto para as camadas Enterprise e Enterprise Flash, têm a Autenticação Microsoft Entra habilitada por padrão. As chaves de acesso estão desativadas por padrão.

Importante

A Microsoft recomenda o uso da autenticação Microsoft Entra ID para a experiência de autenticação mais segura em vez de usar senhas ou chaves de acesso. A autenticação descrita nesta seção do artigo usa chaves de acesso, que exigem um grau muito alto de confiança no aplicativo e acarreta riscos não presentes ao usar o Microsoft Entra ID. Use a abordagem neste documento somente quando a autenticação do Microsoft Entra ID não for viável.

  1. No portal do Azure, selecione o cache onde você gostaria de usar a autenticação baseada em token do Microsoft Entra.

  2. Selecione Autenticação no menu Recurso.

  3. Selecione Selecionar membro e digite 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.

Para obter informações sobre como usar a ID do Microsoft Entra com a CLI do Azure, consulte as páginas de referência 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>.<region>.redis.azure.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 = 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()
    
  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 Azure Managed Redis (visualização). Seu nome de host é do formato <DNS name>.<region>.redis.azure.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 = 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()
    
  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.

Crie um script Python para acessar seu cache

Crie um script Python que use o ID do Microsoft Entra ou chaves de acesso para se conectar à sua instância do Redis. Recomendamos que você use o Microsoft Entra ID.

Usar a autenticação do Microsoft Entra ID no cache

Os caches Redis do Azure, exceto para as camadas Enterprise e Enterprise Flash, têm a Autenticação Microsoft Entra habilitada por padrão. As chaves de acesso estão desativadas por padrão.

Importante

A Microsoft recomenda o uso da autenticação Microsoft Entra ID para a experiência de autenticação mais segura em vez de usar senhas ou chaves de acesso. A autenticação descrita nesta seção do artigo usa chaves de acesso, que exigem um grau muito alto de confiança no aplicativo e acarreta riscos não presentes ao usar o Microsoft Entra ID. Use a abordagem neste documento somente quando a autenticação do Microsoft Entra ID não for viável.

  1. No portal do Azure, selecione o cache onde você gostaria de usar a autenticação baseada em token do Microsoft Entra.

  2. Selecione Autenticação no menu Recurso.

  3. Selecione Selecionar membro e digite 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.

Para obter informações sobre como usar a ID do Microsoft Entra com a CLI do Azure, consulte as páginas de referência 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.