Compartilhar via


Guia de início rápido: Usar o Cache do Azure para Redis com um aplicativo Web ASP.NET Core

Neste guia de início rápido, você vai incorporar o Cache do Azure para Redis em um aplicativo Web ASP.NET Core que se conecta ao Cache do Azure para Redis para armazenar e recuperar dados de cache.

Também há provedores de cache no .NET Core. Para começar rapidamente a usar o Redis com alterações mínimas no código existente, consulte:

Pular para o código no GitHub

Clone o repositório GitHub https://github.com/Azure-Samples/azure-cache-redis-samples e navegue até o diretório quickstart/aspnet-core para exibir o código-fonte concluído para as etapas adiante.

O diretório quickstart/aspnet-core também é configurado como um modelo do Azure Developer CLI (azd). Use a ferramenta azd de código aberto para simplificar o provisionamento e a implantação de um ambiente local para o Azure. Opcionalmente, execute o comando azd up para provisionar automaticamente uma instância do Cache do Azure para Redis e configurar o aplicativo de exemplo local para se conectar a ela:

azd up

Explorar o exemplo de eShop

Como próxima etapa, você poderá visualizar um aplicativo eShop do cenário real, demonstrando os provedores de cache do ASP.NET Core: ASP.NET Core eShop usando provedores de cache para Redis.

Recursos incluídos:

  • Cache distribuído do Redis
  • Provedor de estado de sessão do Redis

As instruções de implantação estão no README.md.

Pré-requisitos

Criar um cache

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

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

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

    Captura de tela que mostra o Azure Marketplace com o Cache do Azure para Redis na caixa de pesquisa e o botão

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

    Configuração Ação Descrição
    Assinatura Selecione sua assinatura do Azure. A assinatura a ser usada para criar a 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 em que você criará o cache e outros recursos. 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 precisa ser uma cadeia de caracteres com 1 a 63 caracteres contendo somente números, letras e hifens. O nome deve 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 é \<DNS name>.redis.cache.windows.net.
    Localidade Selecione uma localização. Uma região do Azure que esteja próxima a outros serviços que usam o cache.
    Cache SKU Selecione um SKU. O SKU determina os parâmetros de tamanho, desempenho e 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 clique em 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. Na guia Avançado, marque a caixa de seleção Autenticação do Microsoft Entra para habilitar a autenticação do Microsoft Entra.

    Captura de tela mostrando o painel Avançado e a opção disponível a ser selecionada.

    Importante

    Para otimizar a segurança, recomendamos usar o Microsoft Entra ID com identidades gerenciadas a fim de autorizar solicitações no cache, se possível. A autorização usando o Microsoft Entra ID e identidades gerenciadas oferece segurança superior e facilidade de uso em relação à autorização de chave de acesso compartilhada. Para saber como usar as identidades gerenciadas com o cache, confira Usar o Microsoft Entra ID para autenticação de cache.

  8. (Opcional) Selecione a guia Categorias ou clique em Avançar: categorias.

  9. (Opcional) Na guia Categorias, insira um nome e um valor de categoria se você quiser categorizar o recurso de cache.

  10. Selecione o botão Revisar + criar.

    Na guia Examinar + criar, o Azure valida a configuração automaticamente.

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

Uma nova implantação de cache ocorre durante diversos minutos. Você pode monitorar o progresso da implantação no painel Visão Geral do Cache do Azure para Redis. Quando o Status mostrar Em execução, o cache estará pronto para uso.

Usar a autenticação do Microsoft Entra ID em seu cache

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

Importante

A Microsoft recomenda o uso da autenticação do 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 apresentam riscos que não estão presentes ao usar o Microsoft Entra ID. Use a abordagem desse documento somente quando a autenticação do Microsoft Entra ID não for viável.

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

  2. Selecione Autenticação no menu Recurso.

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

Para obter informações sobre como usar o Microsoft Entra ID com a CLI do Azure, confira as páginas de referência de identidade.

Adicionar a política de acesso do Redis

Você precisa atribuir uma política de acesso a dados à identidade que acessa o Cache do Azure para Redis. Para esse exemplo, você atribui uma política de acesso a dados à mesma conta do Microsoft Entra ID usada para fazer logon na CLI do Azure ou no Visual Studio.

  1. Selecione Configurações no menu Recurso no cache e selecione a Configuração de acesso a dados.

  2. Na página Configuração de acesso a dados, selecione Adicionar > Novo usuário do Redis na navegação superior.

    Captura de tela mostrando a tela de configuração de acesso a dados.

  3. Na página Novo usuário do Redis, selecione a política Colaborador de dados e selecione Avançar: Usuários do Redis.

  4. Escolha + Selecionar membro para abrir o submenu. Pesquise sua conta de usuário e selecione-a nos resultados.

    Captura de tela mostrando a guia Usuário do Redis no painel de trabalho com Selecionar membro realçado com uma caixa vermelha.

  5. Selecione Examinar + atribuir para atribuir a política ao usuário selecionado.

Adicionar um segredo local para o nome do host

Na janela Comando, execute o seguinte comando para armazenar um novo segredo chamado RedisHostName, depois de substituir os espaços reservados, incluindo colchetes angulares para o nome de cache e a chave de acesso primária:

dotnet user-secrets set RedisHostName "<cache-name>.redis.cache.windows.net"

Para usar a instância do Redis gerenciado do Azure (versão prévia), armazene um novo segredo chamado RedisHostName como abaixo:

dotnet user-secrets set RedisHostName "<cache-name>.<region>.redis.azure.net"

Conexão ao cache com RedisConnection

A classe RedisConnection gerencia a conexão com o cache. A conexão é feita nesta instrução em HomeController.cs na pasta Controladores:

_redisConnection = await _redisConnectionFactory;

A classe RedisConnection.cs inclui os namespaces StackExchange.Redis e Azure.Identity na parte superior do arquivo para incluir tipos essenciais para se conectar ao Cache do Azure para Redis.

using StackExchange.Redis;
using Azure.Identity;

O código RedisConnection garante que sempre haja uma conexão íntegra com o cache gerenciando a instância ConnectionMultiplexer de StackExchange.Redis. A classe RedisConnection recria a conexão quando uma conexão é perdida e não consegue se reconectar automaticamente.

Para obter mais informações, confira StackExchange.Redis e o código em um repositório GitHub.

Exibições de layout no exemplo

O layout da página inicial deste exemplo é armazenado no arquivo _Layout.cshtml. Nesta página, você inicia o teste de cache real clicando em Testar Cache do Azure para Redis.

  1. Abra Views\Shared\_Layout.cshtml.

  2. Você deverá ver em <div class="navbar-header">:

    <a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="RedisCache">Azure Cache for Redis Test</a>
    

Uma captura de tela da página inicial.

Mostrando dados do cache

Na página inicial, selecione Testar Cache do Azure para Redis para ver a saída de exemplo.

  1. No Gerenciador de Soluções, expanda a pasta Exibições e, em seguida, clique com o botão direito do mouse na pasta Início.

  2. Você deve ver esse código no arquivo RedisCache.cshtml.

    @{
        ViewBag.Title = "Azure Cache for Redis Test";
    }
    
    <h2>@ViewBag.Title.</h2>
    <h3>@ViewBag.Message</h3>
    <br /><br />
    <table border="1" cellpadding="10">
        <tr>
            <th>Command</th>
            <th>Result</th>
        </tr>
        <tr>
            <td>@ViewBag.command1</td>
            <td><pre>@ViewBag.command1Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command2</td>
            <td><pre>@ViewBag.command2Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command3</td>
            <td><pre>@ViewBag.command3Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command4</td>
            <td><pre>@ViewBag.command4Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command5</td>
            <td><pre>@ViewBag.command5Result</pre></td>
        </tr>
    </table>
    

Executar o aplicativo localmente

  1. Execute o seguinte comando na janela de comando para compilar o aplicativo:

    dotnet build
    
  2. Em seguida, execute o aplicativo com o seguinte comando:

    dotnet run
    
  3. Navegue até https://localhost:5001 em seu navegador da Web.

  4. Selecione Teste do Cache do Azure para Redis na barra de navegação da página da Web para testar o acesso ao cache.

Captura de tela do teste simples concluído localmente.

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.