Share via


Migration d'une mise en cache partagé vers un service de cache géré Azure

Important

Microsoft recommande tous les nouveaux développements à l’aide du Cache Redis Azure. Pour obtenir de la documentation et des conseils actuels sur le choix d’une offre Azure Cache, consultez Quelle offre Azure Cache est adaptée à moi ?

La migration de vos applications qui utilisent Microsoft Azure Shared Caching vers Service de cache géré peut être effectuée avec des modifications minimales apportées à votre application. Étant donné que Service de cache géré utilise la plupart des mêmes API que Shared Caching, le code existant qui utilise Shared Caching pour accéder à un cache peut être réutilisé avec Service de cache géré. Cette rubrique montre comment apporter les modifications nécessaires à la configuration et à l’application pour migrer vos applications Shared Caching à utiliser Service de cache géré.

Notes

Le cache partagé Azure a été mis hors service en septembre 2014. Nous vous recommandons de passer au Cache Redis Azure, mais si vous souhaitez déplacer votre application sans modification de code, vous pouvez passer à Service de cache géré. Cette rubrique traite de la migration vers Service de cache géré; pour obtenir des conseils sur la migration vers le cache Redis Azure, consultez Migrer de Shared Caching vers le cache Redis Azure (préversion).

Étapes de la migration

Les sections suivantes décrivent les étapes requises pour migrer une application Microsoft Azure Shared Caching à utiliser Service de cache géré.

  • Sélection d’une offre de cache

  • Création d’un cache

  • Configuration du cache

  • Configuration des clients de cache

    • Suppression de la configuration de mise en cache partagé

    • Configuration d'un client de cache à l'aide du package NuGet de mise en cache

  • Migration de la session ASP.NET et de la mise en cache de la sortie des pages

Sélection d’une offre de cache

Service de cache géré est disponible dans les trois offres suivantes.

  • Basic - Tailles de cache comprises entre 128 Mo et 1 Go par incréments de 128 Mo, avec un seul cache nommé par défaut

  • Standard - Cache disponible dans des tailles allant de 1 Go à 10 Go, par incréments de 1 Go, avec prise en charge des notifications, de la haute disponibilité et de jusqu'à dix caches nommés.

  • Premium - Tailles de cache comprises entre 5 Go et 150 Go par incréments de 5 Go, avec prise en charge des notifications, de la haute disponibilité et de dix caches nommés (maximum)

Notes

Chaque offre est distincte en termes de tarification et de fonctionnalités. Pour plus d’informations, consultez FAQ sur la tarification du service de cache et les offres de cache pour Azure Service de cache géré. Des détails supplémentaires sont également fournis dans la section Configurer le cache suivant dans ce guide de migration.

Toutes les fonctionnalités de cache de Shared Caching sont disponibles dans les trois offres Service de cache géré, de sorte qu’un point de départ pour la migration consiste à choisir l’offre de cache Service de cache géré qui correspond à la taille de votre compte Shared Caching. Après avoir déployé l’application, vous pouvez surveiller les performances de votre cache et effectuer un scale-up ou un scale-up en fonction des exigences de votre application. Pour plus d’informations sur la surveillance des performances et la mise à l’échelle, consultez Surveiller Azure Service de cache géré et mettre à l’échelle un cache pour Azure Service de cache géré.

Création d’un cache

Les instances de cache dans Service de cache géré sont créées à l’aide de scripts PowerShell.

Important

Une fois qu’une instance de Service de cache géré est créée à l’aide des applets de commande PowerShell, elle peut être vue et configurée dans le portail de gestion Azure.

Pour créer une instance Service de cache géré

  1. Ouvrez une fenêtre de commande Azure PowerShell.

    Notes

    Pour plus d’informations sur l’installation et l’utilisation d’Azure PowerShell, consultez Installation et configuration d’Azure PowerShell.

  2. Appelez l'applet de commande Add-AzureAccount, puis entrez l'adresse de messagerie et le mot de passe associés à votre compte.

    Notes

    Si vous avez configuré Azure PowerShell avec un certificat pour votre compte, vous pouvez sauter cette étape. Pour plus d’informations sur la connexion d’Azure PowerShell à votre compte Azure, consultez Installation et configuration d’Azure PowerShell.

  3. Appelez l'applet de commande New-AzureManagedCache, puis spécifiez le nom, la région, l'offre de cache et la taille du cache. Dans l'exemple suivant, un cache De base de 128 Mo est créé avec le nom contosocache dans la région géographique South Central US.

    New-AzureManagedCache -Name contosocache -Location "South Central US" -Sku Basic -Memory 128MB
    

    Notes

    Pour obtenir la liste complète des paramètres et des valeurs qui peuvent être utilisés durant la création d'un cache, consultez la documentation de l'applet de commande New-AzureManagedCache .

  4. Une fois l'applet de commande PowerShell appelée, la création du cache peut prendre plusieurs minutes. Une fois le cache créé, votre nouveau cache a un état d’exécution et est prêt à être utilisé avec les paramètres par défaut, et peut être consulté et configuré dans le portail de gestion Azure.

    Vous pouvez surveiller l'avancement de la création dans la fenêtre Azure PowerShell. Un fois le cache prêt à l'emploi, l'applet de commande New-AzureManagedCache permet d'afficher les informations sur le cache, comme l'illustre l'exemple suivant.

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

Configuration du cache

Service de cache géré prend en charge les caches nommés, ce qui vous permet de configurer différentes options de cache pour différents jeux de données. Chaque cache a un cache nommé default, et, dans les offres de cache Standard et Premium, il est possible de configurer jusqu'à neuf caches nommés supplémentaires. Chaque cache nommé possède ses propres paramètres, tels que la haute disponibilité, les notifications, ainsi que des stratégies d'expiration et d'éviction personnalisées. Les paramètres de cache nommé sont configurés dans le portail de gestion sous l'onglet Configurer de Cache.

Named Caches in Windows Azure Cache Service

Le tableau suivant répertorie les différences entre les paramètres de cache entre Service de cache géré et Shared Caching.

Fonctionnalité Prise en charge de Service de cache géré Support Shared Caching

Nom

Un cache default est configuré, et, dans les offres de cache Standard et Premium, jusqu'à neuf caches nommés supplémentaires peuvent être configurés si besoin.

Cache par défaut uniquement.

Haute disponibilité

Fournit la haute disponibilité pour les éléments du cache. En cas de perte liée à une défaillance, les copies de sauvegarde des éléments du cache demeurent disponibles.

La haute disponibilité est disponible dans les offres de cache Standard et Premium et n’est pas disponible dans l’offre de cache de base. Pour plus d’informations, consultez Offres de cache pour Azure Service de cache géré et Haute disponibilité pour Azure Service de cache géré.

Pas de haute disponibilité.

Notifications

Les notifications permettent à votre application de recevoir des notifications asynchrones lorsque plusieurs opérations de cache surviennent dans le cache.

Les notifications sont disponibles dans les offres de cache Standard et Premium, mais pas dans l'offre Basic. Pour plus d’informations, consultez Offres de cache pour Azure Service de cache géré et notifications pour Azure Service de cache géré.

Non pris en charge.

Stratégie d’éviction

Les options possibles sont Activé, qui utilise un algorithme LRU (dernier récemment utilisé) pour déterminer les éléments à évincer, ou Désactivé. La valeur par défaut est Activé.

LRU uniquement.

Durée (min)

Par défaut, le délai d'expiration des éléments dans le cache est de 10 minutes. Cette valeur peut être configurée. L’heure d’expiration des éléments individuels ajoutés au cache peut également être spécifiée à l’aide de surcharges d’ajout et de mise lorsque les éléments sont ajoutés au cache. Durée (min) fonctionne avec Stratégie d'expiration pour déterminer quand les éléments expirent.

Le délai d'expiration par défaut est de 24 heures et n'est pas configurable. L’heure d’expiration des éléments individuels ajoutés au cache peut être configurée à l’aide de surcharges d’ajout et de mise lorsque les éléments sont ajoutés au cache.

Stratégie d’expiration

Il existe trois types de stratégie d’expiration : Jamais, Absolu et Fenêtre coulissante. Si l'option Absolue est spécifiée, l'intervalle d'expiration spécifié par la valeur Durée (min) démarre lors de l'ajout d'éléments au cache. Si l'option Fenêtre glissante est spécifiée, l'intervalle est réinitialisé lors de chaque accès à un élément du cache. Si l'option Aucune est spécifiée, l'option Durée (min) doit être définie sur 0. Dans ce cas, les éléments n'expirent pas. La valeur par défaut est Absolue.

Pour plus d’informations, consultez Expiration et éviction pour Azure Service de cache géré.

La stratégie d'expiration est absolue. L'intervalle d'expiration démarre lorsque des éléments sont ajoutés au cache.

Pour configurer Service de cache géré paramètres pour qu’ils correspondent le plus étroitement aux paramètres de Shared Caching par défaut, utilisez les paramètres suivants.

  • Stratégie d'expiration a comme valeur Absolue

  • Durée (min) a comme valeur 1440

  • Notifications a la valeur Désactivées (configurable pour les offres de cache Standard et Premium, option toujours désactivée pour l'offre de cache De base)

  • Haute disponibilité définie sur Désactivé (configurable pour les offres de cache Standard et Premium, toujours désactivées pour l’offre de cache de base)

  • Éviction a la valeur Activé

Configuration des clients de cache

Une fois le cache créé et configuré, l’étape suivante consiste à ajouter la configuration et les références nécessaires afin que les clients de cache puissent accéder au cache. Service de cache géré prend en charge les clients suivants.

  • Sites web Windows Azure

  • Rôle web et rôle de travail Azure Cloud Services

  • Machines virtuelles Azure

Pour configurer les clients de cache, procédez comme suit pour chacun d'eux.

  • Suppression de la configuration de mise en cache partagé

  • Configuration d'un client de cache à l'aide du package NuGet de mise en cache

Suppression de la configuration de mise en cache partagé

Avant que les applications clientes puissent être configurées pour Service de cache géré, les références de configuration et d’assembly Shared Caching existantes doivent être supprimées. Si Shared Caching a été configuré à l’aide du package Shared Caching NuGet, la configuration peut être supprimée en désinstallant le package Shared Caching NuGet ; sinon, il doit être supprimé manuellement.

  • Désinstallation du package NuGet de mise en cache partagé

  • Suppression manuelle de la configuration de mise en cache partagé

Désinstallation du package NuGet de mise en cache partagé

Pour désinstaller le package Shared Caching NuGet, cliquez avec le bouton droit sur le projet client dans Explorateur de solutions, puis choisissez Gérer les packages NuGet. Sélectionnez le nœud Packages installés, puis tapez Mise en cache dans la zone Rechercher dans les packages installés. Sélectionnez Azure Shared Caching, cliquez sur Désinstaller, puis sur Fermer.

Uninstall Shared Caching NuGet Package

Notes

S’il n’existe aucun package Microsoft Azure Shared Caching NuGet dans la liste, cliquez sur Fermer et suivez les étapes décrites dans Supprimer manuellement la configuration Shared Caching.

La désinstallation du package Shared Caching NuGet supprime les assemblys Shared Caching et les entrées Shared Caching dans l’application app.config cliente ou web.config dans celle-ci. Comme certains paramètres personnalisés ne peuvent pas être supprimés lors de la désinstallation du package NuGet, ouvrez le fichier web.config ou app.config, et vérifiez que les éléments suivants sont entièrement supprimés.

  • Assurez-vous que l’entrée dataCacheClients est supprimée de l’élément configSections. Ne supprimez pas l’intégralité de l’élément configSections ; supprimez simplement l’entrée dataCacheClients, le cas échéant.

    <configSections>
      <!-- Existing sections omitted for clarity. -->
      <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
    </configSections>
    
  • Vérifiez que la section dataCacheClients est supprimée. La section dataCacheClients doit avoir un aspect proche de l’exemple ci-dessous.

    <dataCacheClients>
      <dataCacheClient name="default">
        <hosts>
          <host name="MyCacheNamespace.cache.windows.net" cachePort="22233" />
        </hosts>
    
        <securityProperties mode="Message">
          <messageSecurity 
            authorizationInfo="Your authorization token will be here.">
          </messageSecurity>
        </securityProperties>
      </dataCacheClient>
    </dataCacheClients>
    

Une fois la configuration Shared Caching supprimée, vous pouvez configurer le client de cache comme décrit dans la section Configurer un client de cache à l’aide de la section Mise en cache NuGet Package.

Suppression manuelle de la configuration de mise en cache partagé

Pour supprimer manuellement la configuration Shared Caching, vous devez supprimer les références d’assembly Shared Caching et la configuration Shared Caching de app.config ou web.config.

Pour supprimer les références d’assembly Shared Caching, sélectionnez le projet client de cache dans Explorateur de solutions et développez le dossier Références. Pour chacun des assemblys dans la liste, cliquez avec le bouton droit sur l'assembly dans le dossier Références de l'Explorateur de solutions, puis sélectionnez Supprimer. Si le client est un projet web, supprimez également Microsoft.Web.DistributedCache.

  • Microsoft.ApplicationServer.Caching.Client

  • Microsoft.ApplicationServer.Caching.Core

  • Microsoft.WindowsFabric.Common

  • Microsoft.WindowsFabric.Data.Common

Pour supprimer la configuration Shared Caching, ouvrez le web.config projet client de cache ou app.config le projet client de cache et supprimez les deux éléments suivants.

  • dataCacheClientsconfigSectionsentrée de l'élément. Ne supprimez pas l’intégralité de l’élément configSections ; supprimez simplement l’entrée dataCacheClients, le cas échéant.

    <configSections>
      <!-- Existing sections omitted for clarity. -->
      <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
    </configSections>
    
  • dataCacheClients. Celle-ci doit être similaire à l'exemple suivant.

    <dataCacheClients>
      <dataCacheClient name="default">
        <hosts>
          <host name="MyCacheNamespace.cache.windows.net" cachePort="22233" />
        </hosts>
    
        <securityProperties mode="Message">
          <messageSecurity 
            authorizationInfo="Your authorization token will be here.">
          </messageSecurity>
        </securityProperties>
      </dataCacheClient>
    </dataCacheClients>
    

Une fois ces éléments supprimés, vous pouvez suivre la procédure de la section suivante pour configurer votre client de cache.

Configuration d'un client de cache à l'aide du package NuGet de mise en cache

Service de cache géré fournit un package NuGet pour ajouter les références de configuration et d’assembly nécessaires pour permettre aux clients de cache d’accéder à un cache.

Important

Avant de configurer le client de cache à l’aide du package Service de cache géré NuGet, assurez-vous que la configuration Shared Caching est complètement supprimée du web.config projet client ou app.config du projet client, comme décrit dans la section précédente.

Important

Pour exécuter cette procédure, vous devez disposer du Gestionnaire de package NuGet (version 2.6.40627.9000 ou supérieure). Pour installer la dernière NuGet Gestionnaire de package, consultez NuGet Gestionnaire de package.

Pour utiliser le package Service de cache géré NuGet, cliquez avec le bouton droit sur le projet client dans Explorateur de solutions, puis choisissez Gérer les packages NuGet.

Sélectionnez Mise en cache Azure, cliquez sur Installer, puis sur J’accepte. Une fois le package installé pour le projet de client, cliquez sur Fermer pour fermer la fenêtre Gérer les packages NuGet.

Notes

Si la mise en cache Azure n’apparaît pas dans la liste, tapez WindowsAzure.Caching dans la zone de texte Rechercher en ligne .

Windows Azure Cache NuGet Package

Lorsque le package Service de cache géré NuGet est installé sur un projet client, il ajoute les références de configuration et d’assembly requises afin que l’application cliente puisse accéder au cache.

Si la valeur web.config ou app.config est définie pour le projet de client, plusieurs éléments sont ajoutés.

  1. Deux sections sont ajoutées à configSections (dataCacheClients et à 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. Une section dataCacheClients est ajoutée à la section 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>
    

    Remplacez [Nom du rôle de cache ou point de terminaison de service] par l’URL du point de terminaison qui s’affiche dans le tableau de bord du cache dans le portail de gestion.

    Endpoint URL for Windows Azure Cache Service
    Dans cet exemple, le cache est nommé applicationcache, et l'URL de point de terminaison est applicationcache.cache.windows.net.

    <autoDiscover isEnabled="true" identifier="applicationcache.cache.windows.net" />
    

    Supprimez les marques de commentaire de la section securityProperties et remplacez [Clé d’authentification] par la clé d’authentification.

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

    Vous pouvez accéder à la clé d'authentification dans le portail de gestion en cliquant sur Gérer les clés dans le tableau de bord du cache.

    Manage Access Keys for Windows Azure Cache Service

    Avertissement

    Ces paramètres doivent être configurés correctement, sinon les clients ne pourront pas accéder au cache.

Pour les projets de services cloud, le package Service de cache géré NuGet ajoute également un paramètre ClientDiagnosticLevel au ConfigurationSettings rôle client de cache dans ServiceConfiguration.cscfg. L’exemple suivant est la WebRole1 section d’un ServiceConfiguration.cscfg fichier avec un ClientDiagnosticLevel de 1, qui est le clientDiagnosticLevel par défaut.

<Role name="WebRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <!-- Other settings omitted for space... -->
    <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
  </ConfigurationSettings>
</Role>

Notes

Pour plus d’informations sur les niveaux de diagnostic du cache, consultez À propos de ClientDiagnosticLevel pour Azure Service de cache géré.

Outre l’ajout de la configuration requise, le package Service de cache géré NuGet ajoute également les références d’assembly suivantes.

  • 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

Si le projet est un projet web, la référence d'assembly suivante est également ajoutée.

  • Microsoft.Web.DistributedCache.dll

Notes

Service de cache géré et Shared Caching partagez la même API, et bien que les noms d’assembly soient identiques, les assemblys eux-mêmes sont différents et se trouvent dans des emplacements différents. Le package Service de cache géré NuGet supprime les références d’assembly Shared Caching et ajoute les références d’assembly Service de cache géré correctes. Les assemblys Service de cache géré se trouvent dans le C:\Program Files\Microsoft SDKs\Azure\.NET SDK[SDK Version]\ref\Caching dossier.

Migration de la session ASP.NET et de la mise en cache de la sortie des pages

Une fois que vos projets web ASP.NET sont migrés de Microsoft Azure Shared Caching vers Service de cache géré comme décrit dans Configurer les clients de cache, seules les modifications minimales sont nécessaires pour permettre le stockage d’ASP.NET état de session ou de mise en cache de sortie de page dans le cache. system.webweb.configétat de session ASP.NET dans le cache, ajoutez la section suivante à dans le fichier.

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

Notes

Si votre ASP.NET rôle web a déjà été configuré pour utiliser le fournisseur d’état de session pour la mise en cache, cette section est déjà présente et aucune modification n’est requise.

Mettez à jour cacheName pour spécifier le cache contenant l'état de session. Utilisez la valeur default pour spécifier le cache par défaut.

Pour activer le stockage de la mise en cache de la sortie des pages dans le cache, ajoutez la section suivante à 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>

Notes

Si votre rôle web ASP.NET a déjà été configuré pour utiliser le fournisseur de cache de sortie pour la mise en cache, cette section est déjà présente et aucune modification n’est requise.

Mettez à jour cacheName pour spécifier le cache contenant l'état de session. Utilisez la valeur default pour spécifier le cache par défaut.

Ajoutez une directive OutputCache à chaque page pour laquelle vous souhaitez mettre en cache la sortie.

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

Dans cet exemple, les données de page mises en cache restent dans le cache pendant 60 secondes, et une version différente de la page est mise en cache pour chaque combinaison de paramètres. Pour plus d’informations sur les options disponibles, consultez la directive OutputCache.

Voir aussi

Concepts

Offres de cache pour service de cache géré Azure
Planification de la capacité pour le service de cache géré Azure
Fournisseur d'état de session pour service de cache géré Azure
Fournisseur de cache de sortie de page pour service de cache géré Azure

Autres ressources

Service cache managé Azure