Esta documentação foi arquivada e não está sendo atualizada.

Migrar do cache na função para o serviço de cache gerenciado do Azure

Atualizado: agosto de 2015

ImportantImportante
A Microsoft recomenda que todos os novos desenvolvimentos usem Cache Redis do Azure. Para documentação atual e orientação sobre como escolher uma oferta de Cache do Azure, consulte Qual oferta de Cache do Azure é ideal para mim?

A migração de aplicativos Cache do Microsoft Azure que usam o Cache na Função para Serviço de cache gerenciado do Azure pode ser realizada com alterações mínimas no aplicativo. Como o Serviço de cache gerenciado usa a mesma API do Cache na Função, o código existente que usa o Cache na Função para acessar um cache pode ser reutilizado com o Serviço de cache gerenciado. Este tópico mostra como fazer as alterações necessárias na configuração e no aplicativo Cache na Função para migrá-lo para o uso do Serviço de cache gerenciado.

O Serviço de cache gerenciado está disponível nas três ofertas a seguir.

  • Basic - Cache com tamanhos de 128 MB a 1 GB, em incrementos de 128 MB, com um cache nomeado padrão

  • Standard - Cache em tamanhos de 1 GB a 10 GB, em incrementos de 1 GB, com suporte a notificações, alta disponibilidade e até dez caches nomeados

  • Premium - Cache em tamanhos de 5 GB a 150 GB, em incrementos de 5 GB, com suporte a notificações, alta disponibilidade e até dez caches nomeados

noteObservação
Essas ofertas diferem em termos de preço e recursos. Para obter mais informações, consulte Perguntas frequentes sobre preço de serviços de cache e Ofertas de cache para o serviço de cache gerenciado do Azure. Detalhes adicionais também são fornecidos posteriormente na seção Configure the Cache deste guia de migração.

Todos os recursos de cache do Cache na Função estão disponíveis nas diferentes ofertas de cache do Serviço de cache gerenciado. Se o seu aplicativo usa notificações, você deve escolher a oferta de cache Standard ou Basic. Se o seu cache tem alta disponibilidade habilitada, você deve escolher a oferta de cache Premium. Um ponto de partida para a migração é escolher a oferta de cache do Serviço de cache gerenciado que possua os recursos de cache exigidos e atenda às necessidades de capacidade do seu aplicativo Cache na Função.

Depois de implantar o aplicativo, você pode monitorar o desempenho do cache e dimensioná-lo para mais ou para menos, dependendo dos requisitos do aplicativo. Para obter mais informações sobremonitoramento de desempenho e dimensionamento, consulte Monitorar o serviço de cache gerenciado do Azure e Dimensionar um cache para o serviço de cache gerenciado do Azure.

As instâncias de cache no Serviço de cache gerenciado são criadas usando scripts do PowerShell.

ImportantImportante
Depois que uma instância do Serviço de cache gerenciado é criada usando os cmdlets do PowerShell, ela pode ser visualizada e configurada no Portal de Gerenciamento do Azure.

  1. Abra uma janela de comando do PowerShell do Azure.

    noteObservação
    Para obter instruções de instalação e uso do PowerShell do Azure, consulte Como instalar e configurar o PowerShell do Azure.

  2. Invoque o cmdlet Add-AzureAccount e insira o endereço de e-mail e senha associados à sua conta.

    noteObservação
    Se tiver configurado o PowerShell do Azure com um certificado para a sua conta, você pode ignorar esta etapa. Para obter mais informações sobre conectar o Azure PowerShell a sua conta do Azure, consulte Como instalar e configurar o Azure PowerShell.

  3. Invoque o cmdlet New-AzureManagedCache e especifique o nome, região, oferta de cache e tamanho do cache. No exemplo a seguir, um cache Basic de 128 MB é criado com o nome contosocache na região geográfica South Central US.

    New-AzureManagedCache -Name contosocache -Location "South Central US" -Sku Basic -Memory 128MB
    
    noteObservação
    Para obter uma lista completa dos parâmetros e valores que podem ser usados ao criar um cache, consulte a documentação do cmdlet New-AzureManagedCache.

  4. Após a invocação do cmdlet do PowerShell, a criação do cache pode demorar alguns minutos. Ao ser criado, o novo cache tem o status Em Execução, está pronto para uso com as configurações padrão e pode ser visualizado e configurado no Portal de Gerenciamento do Azure.

    Você pode monitorar o progresso da criação na janela do PowerShell do Azure. Quando o cache estiver pronto para uso, o cmdlet New-AzureManagedCache exibirá as informações do cache, como é mostrado no exemplo a seguir.

    PS C:\> Add-AzureAccount
    VERBOSE: Account "user@domain.com" has been added.
    VERBOSE: Subscription "MySubscription" is selected as the default subscription.
    VERBOSE: To view all the subscriptions, please use Get-AzureSubscription.
    VERBOSE: To switch to a different subscription, please use Select-AzureSubscription.
    PS C:\> New-AzureManagedCache -Name contosocache -Location "South Central US" -Sku Basic -Memory 128MB
    VERBOSE: Intializing parameters...
    VERBOSE: Creating prerequisites...
    VERBOSE: Verify cache service name...
    VERBOSE: Creating cache service...
    VERBOSE: Waiting for cache service to be in ready state...
    
    
    Name     : contosocache
    Location : South Central US
    State    : Active
    Sku      : Basic
    Memory   : 128MB
    
    
    
    PS C:\>
    

Tanto o Cache na Função como o Serviço de cache gerenciado oferecem suporte a caches nomeados, que fornecem flexibilidade para configurar diferentes opções de cache para diferentes conjuntos de dados. Cada cache Serviço de cache gerenciado tem um cache nomeado padrão e, nas ofertas de cache Standard e Premium, até nove caches nomeados adicionais podem ser configurados. Cada cache nomeado tem suas próprias configurações individuais, como alta disponibilidade, notificações e políticas personalizadas de remoção e expiração. As configurações de cache nomeado são definidas no Portal de Gerenciamento, na guia Configurar do Cache.

Caches nomeados no Serviço de cache do Windows Azure

Embora o Cache na Função e o Serviço de cache gerenciado tenham os mesmos recursos de cache, existem pequenas diferenças, que são listadas na tabela a seguir.

 

Recurso Suporte do Serviço de cache gerenciado Suporte do Cache na Função

Nome

Um cache padrão é configurado e, nas ofertas de cache Standard e Premium, até nove caches nomeados adicionais podem ser configurados, se desejado.

Um cache padrão é configurado e caches nomeados adicionais podem ser configurados.

Alta Disponibilidade

A alta disponibilidade está disponível nas ofertas de cache Standard e Premium, não na oferta de cache Basic. Para obter mais informações, consulte Ofertas de cache para o serviço de cache gerenciado do Azure.

A alta disponibilidade pode ser ativada para todas as topologias do Cache na Função.

Notificações

As notificações estão disponíveis nas ofertas de cache Standard e Premium, mas não na oferta de cache Basic. Para obter mais informações, consulte Ofertas de cache para o serviço de cache gerenciado do Azure.

As notificações podem ser ativadas em todas as topologias do Cache na Função.

Política de Remoção

As opções são Ativado, que usa um algoritmo LRU (menos utilizado recentemente) para determinar quais itens devem ser removidos, ou Desativado. O padrão é Ativado.

As opções são LRU (menos utilizado recentemente) ou Nenhum. O padrão é LRU.

Tempo (min)

No Serviço de cache gerenciado, a configuração é denominada Tempo (min).

No Cache na Função, a configuração é denominada Vida útil (min).

Política de Expiração

Essa configuração é denominada Política de Expiração e tem três valores possíveis: Nunca, Absoluta e Deslizante, que correspondem às configurações de Política de Expiração no Cache na Função.

Essa configuração é denominada Política de Expiração e tem três valores possíveis: Nenhuma, Absoluta e Janela Deslizante.

Para migrar do Cache na Função para o Serviço de cache gerenciado, recrie todos os caches nomeados do seu cluster de cache do Cache na Função no novo cache do Serviço de cache gerenciado.

Depois de configurar o novo cache do Serviço de cache gerenciado, o próximo passo é remover o cache da função que hospedava o Cache na Função. Essas etapas diferem dependendo da topologia de cluster de cache do Cache na Função.

Para remover um cluster de cache de função dedicada, é necessário remover o projeto de função de trabalho de cache da solução Visual Studio e da pasta Funções no projeto de serviços de nuvem.

  1. Clique com o botão direito do mouse na função de trabalho de cache na pasta Funções do projeto de serviços de nuvem no Gerenciador de Soluções e escolha Remover.

    Remover função de trabalho do cache
  2. Clique com o botão direito do mouse no projeto de função de trabalho no Gerenciador de Soluções e escolha Remover.

Para desativar o cache de função colocalizada em uma função de trabalho ou função web, é necessário desmarcar a configuração Cache na guia Cache das propriedades da função.

  1. Clique com o botão direito do mouse na função no projeto de serviços de nuvem, no Gerenciador de Soluções, e escolha Propriedades.

    Item de menu de propriedades da função de cache
  2. Alterne para a guia Cache, desmarque a caixa de seleção Habilitar Cache e pressione CTRL+S para salvar.

    Desabilite as configurações de cache da função colocada

Tendo criado e configurado o cache, a próxima etapa é adicionar a configuração e as referências necessárias para que os clientes de cache possam acessá-lo. O Serviço de cache gerenciado dá suporte aos seguintes clientes.

  • Site do Azure

  • Função web e função de trabalho dos serviços de nuvem do Azure

  • Máquinas Virtuais do Azure

noteObservação
Se o projeto do Cache na Função já estiver usando o SDK mais recente do Azure, você terá apenas que atualizar a configuração do cliente de cache, ignorando as etapas a seguir e seguindo o procedimento descrito em Atualizar a configuração do cliente de cache para usar o serviço de cache.

Se o projeto do Cache na Função estiver usando o SDK 1.8 a 2.0 do Azure, você terá que remover o pacote NuGet de cache, bem como qualquer configuração de cliente de cache remanescente, e então instalar o SDK do Azure mais recente (atualmente, 2.1). Depois de atualizar o SDK, instale e configure o pacote NuGet de cache mais recente. Para configurar os clientes de cache, execute as etapas a seguir com cada cliente.

Para que os aplicativos clientes possam ser configurados para o Serviço de cache gerenciado, a configuração e as referências a assembly existentes do Cache na Função devem ser removidas. Isso pode ser feito desinstalando o pacote NuGet de cache.

Para desinstalar o pacote NuGet do Cache na Função, clique com o botão direito do mouse no projeto cliente no Gerenciador de Soluções e escolha Gerenciar Pacotes NuGet. Selecione o nó Pacotes instalados e digite Cache na caixa Pesquisar pacotes instalados. Selecione Caching do Windows Azure, clique em Desinstalar e clique em Fechar.

noteObservação
Na captura de tela a seguir, a versão do pacote NuGet é 2.1.0.0. Se tiver essa versão ou uma versão superior, você poderá ignorar esta etapa. Esta etapa só será necessária se a versão do pacote NuGet for 1.8.* ou 2.0.*.

Desinstalar pacote de NuGet de Cache na Função

A desinstalação do pacote NuGet do Cache na Função remove os assemblies do Cache na Função e as entradas do Cache na Função no app.config ou web.config do aplicativo cliente. Como algumas configurações personalizadas podem não ser removidas ao desinstalar o pacote NuGet, abra o web.config ou o app.config e certifique-se de que os elementos a seguir foram completamente removidos.

  • Verifique se a entrada dataCacheClients foi removida do elemento configSections. Não remova todo o elemento configSections; remova apenas a entrada dataCacheClients, se estiver presente.

    <configSections>
      <!-- Existing sections omitted for clarity. -->
      <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
    </configSections>
    
  • Verifique se a seção dataCacheClients foi removida. A seção dataCacheClients será semelhante ao exemplo a seguir.

    <dataCacheClients>
      <dataCacheClient name="default" channelOpenTimeout="0">
        <autoDiscover isEnabled="true" identifier="CacheWorker" />
      </dataCacheClient>
    </dataCacheClients>
    

Depois de remover a configuração do Cache na Função, você poderá configurar o cliente de cache conforme descrito na seção Configurar um cliente de cache usando o pacote NuGet de cache a seguir.

O Serviço de cache gerenciado fornece um pacote NuGet para adicionar a configuração e as referências a assembly necessárias para permitir que os clientes de cache acessem um cache.

ImportantImportante
Antes de configurar o cliente de cache usando o pacote NuGet do Serviço de cache gerenciado, certifique-se de que a configuração do Cache na Função foi completamente removida do web.config ou app.config da função cliente, conforme descrito na seção anterior.

ImportantImportante
Estas etapas exigem a versão mais recente (2.2.* ou superior) do gerenciador de pacote NuGet. Para instalar a versão mais recente do gerenciador de pacote NuGet, consulte Gerenciador de pacote NuGet.

Para usar o pacote NuGet do Serviço de cache gerenciado, clique com o botão direito do mouse no projeto cliente no Gerenciador de Soluções e escolha Gerenciar Pacotes NuGet.

Selecione Cache do Azure, clique em Instalar e, em seguida, clique em Aceito. Depois que o pacote for instalado no projeto cliente, clique em Fechar para fechar a janela Gerenciar Pacotes NuGet.

noteObservação
Se Cache do Azure não aparecer na lista, digite WindowsAzure.Caching na caixa de texto Pesquisar Online.

Pacote de NuGet de Cache do Windows Azure

Quando é instalado em um projeto cliente, o pacote NuGet do Serviço de cache gerenciado adiciona a configuração e as referências a assembly necessárias para que o aplicativo cliente possa acessar o cache.

Vários itens são adicionados ao arquivo web.config ou app.config do projeto.

  1. Duas seções são adicionadas ao configSections, denominadas dataCacheClients e cacheDiagnostics.

    <!-- Non-cache sections omitted for space -->
      <configSections>
        <section name="dataCacheClients" 
            type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" 
            allowLocation="true" 
            allowDefinition="Everywhere" />
    
        <section name="cacheDiagnostics" 
            type="Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsConfigurationSection, Microsoft.ApplicationServer.Caching.AzureCommon" 
            allowLocation="true" 
            allowDefinition="Everywhere" />
      </configSections>
    
  2. Uma seção dataCacheClients é adicionada à seção configuration.

    <!-- Non-cache sections omitted for space -->
      <dataCacheClients>
        <dataCacheClient name="default">
          <!--To use the in-role flavor of Azure Caching, set identifier to be the cache cluster role name -->
          <!--To use the Azure Caching Service, set identifier to be the endpoint of the cache cluster -->
          <autoDiscover
            isEnabled="true" 
            identifier="[Cache role name or Service Endpoint]" />
          <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
          <!--Use this section to specify security settings for connecting to your cache. 
              This section is not required if your cache is hosted on a role that is a part 
              of your cloud service. -->
          <!--<securityProperties mode="Message" sslEnabled="false">
            <messageSecurity authorizationInfo="[Authentication Key]" />
          </securityProperties>-->
        </dataCacheClient>
      </dataCacheClients>
    
    Substitua [Cache role name or Service Endpoint] pelo URL do ponto de extremidade que é exibido no Painel de Cache do Portal de Gerenciamento.

    URL do ponto de extremidade para o Serviço de cache do Windows Azure
    Neste exemplo, o cache tem o nome de applicationcache e o URL do ponto de extremidade é applicationcache.cache.windows.net.

    <autoDiscover isEnabled="true" identifier="applicationcache.cache.windows.net" />
    
    Remova as marcas de comentário da seção securityProperties e substitua [Authentication Key] pela chave de autenticação primária.

    <!--Use this section to specify security settings for connecting to your cache. 
        This section is not required if your cache is hosted on a role that is a part 
        of your cloud service. -->
    <!--<securityProperties mode="Message" sslEnabled="false">
      <messageSecurity authorizationInfo="[Authentication Key]" />
    </securityProperties>-->
    
    
    A chave de autenticação pode ser encontrada no Portal de Gerenciamento clicando em Gerenciar Chaves no painel de cache. Para obter mais informações sobre chaves de acesso e proteção das comunicações de cache com o atributo sslEnabled, consulte Modelo de segurança para o serviço de cache gerenciado do Azure.

    Gerenciar chaves de acesso para o Serviço de cache do Windows Azure
    WarningAviso
    Se esses parâmetros não forem configurados corretamente, os clientes não conseguirão acessar o cache.

Para projetos de serviço de nuvem, o pacote NuGet do Serviço de cache gerenciado também adiciona uma configuração ClientDiagnosticLevel ao ConfigurationSettings da função cliente de cache em ServiceConfiguration.cscfg. O exemplo a seguir é a seção WebRole1 de um arquivo ServiceConfiguration.cscfg com um ClientDiagnosticLevel de 1, que é o ClientDiagnosticLevel padrão.

<Role name="WebRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <!-- Other settings omitted for space... -->
    <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
  </ConfigurationSettings>
</Role>
noteObservação
Para obter mais informações sobre níveis de diagóstico de cache, consulte Sobre ClientDiagnosticLevel para o serviço de cache gerenciado do Azure.

Além de adicionar a configuração necessária, o pacote NuGet do Serviço de cache gerenciado também adiciona as seguintes referências a assembly.

  • Microsoft.ApplicationServer.Caching.Client.dll

  • Microsoft.ApplicationServer.Caching.Core.dll

  • Microsoft.ApplicationServer.Caching.AzureCommon.dll

  • Microsoft.ApplicationServer.Caching.AzureClientHelper.dll

  • Microsoft.WindowsFabric.Common.dll

  • Microsoft.WindowsFabric.Data.Common.dll

Em um projeto Web, a seguinte referência a assembly também é adicionada.

  • Microsoft.Web.DistributedCache.dll

noteObservação
O Serviço de cache gerenciado e o Cache na Função compartilham a mesma API e, embora os nomes de assembly sejam os mesmos, os assemblies são diferentes e estão em locais diferentes. O pacote NuGet do Serviço de cache gerenciado remove as referências a assembly do Cache na Função e adiciona as referências a assembly corretas do Serviço de cache gerenciado. Os assemblies do Serviço de cache gerenciado estão localizados na pasta C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.1\ref\Caching.

Se o projeto do Cache na Função já estiver usando o SDK mais recente do Azure, você terá apenas que atualizar a configuração do cliente de cache para apontar para o novo cache do Serviço de cache gerenciado.

  1. Abra o web.config ou app.config do projeto cliente de cache e localize a seção dataCacheClients.

    <!-- Non-cache sections omitted for space -->
      <dataCacheClients>
        <dataCacheClient name="default">
          <!--To use the in-role flavor of Windows Azure Caching, set identifier to be the cache cluster role name -->
          <!--To use the Windows Azure Caching Service, set identifier to be the endpoint of the cache cluster -->
          <autoDiscover
            isEnabled="true" 
            identifier="MyCacheWorkerRole" />
          <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
          <!--Use this section to specify security settings for connecting to your cache. 
              This section is not required if your cache is hosted on a role that is a part 
              of your cloud service. -->
          <!--<securityProperties mode="Message" sslEnabled="false">
            <messageSecurity authorizationInfo="[Authentication Key]" />
          </securityProperties>-->
        </dataCacheClient>
      </dataCacheClients>
    
  2. Na seção autoDiscover, substitua o nome da função do cluster de Cache na Função pelo nome do URL do ponto de extremidade para o cache do Serviço de cache gerenciado no atributo identifier. O URL do ponto de extremidade é exibido no Painel de Cache do Portal de Gerenciamento.

    URL do ponto de extremidade para o Serviço de cache do Windows Azure
    Neste exemplo, o cache tem o nome de applicationcache e o URL do ponto de extremidade é applicationcache.cache.windows.net.

    <autoDiscover isEnabled="true" identifier="applicationcache.cache.windows.net" />
    
  3. Remova as marcas de comentário da seção securityProperties e substitua [Authentication Key] pela chave de autenticação.

    <!--Use this section to specify security settings for connecting to your cache. 
        This section is not required if your cache is hosted on a role that is a part 
        of your cloud service. -->
    <!--<securityProperties mode="Message" sslEnabled="false">
      <messageSecurity authorizationInfo="[Authentication Key]" />
    </securityProperties>-->
    
    
    A chave de autenticação pode ser encontrada no Portal de Gerenciamento clicando em Chaves de Acesso no painel de cache.

    Gerenciar chaves de acesso para o Serviço de cache do Windows Azure

Depois que seus projetos web ASP.NET forem migrados do Cache na Função para o Serviço de cache gerenciado, conforme descrito em Configure the Cache Clients, somente alterações mínimas serão necessárias para habilitar o armazenamento do estado da sessão ASP.NET ou do cache de saída de página no cache. Para habilitar o armazenamento do estado da sessão ASP.NET no cache, adicione a seguinte seção a system.web em web.config.

<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
  <providers>
    <add name="AppFabricCacheSessionStoreProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" useBlobMode="true" dataCacheClientName="default" />
  </providers>
</sessionState>
noteObservação
Se a função web ASP.NET já tiver sido configurada para usar o provedor de estado da sessão para o caching, essa seção já estará presente e nenhuma alteração será necessária.

Atualize cacheName para especificar o cache que contém o estado da sessão. Use default para especificar o cache padrão.

Para habilitar o armazenamento do cache de saída de página no cache, adicione a seguinte seção a system.web.

<caching>
  <outputCache defaultProvider="DistributedCache">
    <providers>
      <add name="DistributedCache" type="Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache" cacheName="default" dataCacheClientName="default" />
    </providers>
  </outputCache>
</caching>
noteObservação
Se a função web ASP.NET já tiver sido configurada para usar o provedor de cache de saída para o caching, essa seção já estará presente e nenhuma alteração será necessária.

Atualize cacheName para especificar o cache que contém o estado da sessão. Use default para especificar o cache padrão.

Adicione uma diretiva OutputCache a cada página cuja saída você deseja armazenar no cache.

<%@ OutputCache Duration="60" VaryByParam="*" %>

Neste exemplo, os dados da página armazenados em cache permanecem no cache por 60 segundos e uma versão diferente da página é armazenada em cache para cada combinação de parâmetros. Para obter mais informações sobre as opções disponíveis, consulte Diretiva OutputCache.

Consulte também

Mostrar: