Configurer des environnements intermédiaires dans Azure App ServiceSet up staging environments in Azure App Service

Notes

Ce guide pratique montre comment gérer les emplacements à l’aide d’une nouvelle page de gestion en préversion.This how-to guide shows how to manage slots using a new preview management page. Les clients habitués à la page de gestion existante peuvent continuer à utiliser la page de gestion des emplacements existante, comme avant.Customers used to the existing management page can continue to use the existing slot management page as before.

Lorsque vous déployez votre application web, votre application web Linux, votre backend mobile ou votre API dans App Service, vous pouvez cibler un autre emplacement de déploiement que l’emplacement de production par défaut lorsque vous exécutez le niveau de plan Standard, Premium ou Isolé d’App Service.When you deploy your web app, web app on Linux, mobile back end, and API app to App Service, you can deploy to a separate deployment slot instead of the default production slot when running in the Standard, Premium, or Isolated App Service plan tier. Les emplacements de déploiement sont en fait des applications dynamiques pourvues de leur propre nom d’hôte.Deployment slots are actually live apps with their own hostnames. Les éléments de contenu et de configuration des applications peuvent être échangés entre deux emplacements de déploiement, y compris l’emplacement de production.App content and configurations elements can be swapped between two deployment slots, including the production slot. Le déploiement de votre application sur un emplacement hors production présente les avantages suivants :Deploying your application to a non-production slot has the following benefits:

  • Vous pouvez valider les modifications d’une application dans un emplacement de déploiement intermédiaire avant de l’échanger avec l’emplacement de production.You can validate app changes in a staging deployment slot before swapping it with the production slot.
  • Déployer d’abord une application dans un emplacement et la basculer ensuite en production permet de vous assurer que toutes les instances de l’emplacement sont initialisées avant d’être basculées en production.Deploying an app to a slot first and swapping it into production makes sure that all instances of the slot are warmed up before being swapped into production. Cela permet d’éliminer les temps d’arrêt lors du déploiement de l’application.This eliminates downtime when you deploy your app. La redirection du trafic est transparente et aucune requête n’est abandonnée du fait d’opérations de permutation.The traffic redirection is seamless, and no requests are dropped because of swap operations. Ce flux de travail peut être entièrement automatisé en configurant l’Échange automatique lorsqu’aucune validation n’est nécessaire avant l’échange.This entire workflow can be automated by configuring Auto Swap when pre-swap validation isn't needed.
  • Après basculement, la précédente application de production se retrouve dans l’emplacement de l’application précédemment intermédiaire.After a swap, the slot with previously staged app now has the previous production app. Si les modifications permutées en production ne vous conviennent pas, vous pouvez effectuer la même permutation afin de récupérer immédiatement le contenu du précédent site qui vous plaisait.If the changes swapped into the production slot aren't as you expect, you can perform the same swap immediately to get your "last known good site" back.

Chaque niveau de plan App Service prend en charge un nombre différent d’emplacements de déploiement.Each App Service plan tier supports a different number of deployment slots. Pour connaître le nombre d’emplacements pris en charge par le plan de votre application, consultez Limites App Service.To find out the number of slots your app's tier supports, see App Service Limits. Pour mettre votre application à l’échelle vers un niveau différent, le niveau cible doit prendre en charge le nombre d’emplacements déjà utilisés par votre application.To scale your app to a different tier, the target tier must support the number of slots your app already uses. Par exemple, si votre application possède plus de cinq emplacements, vous ne pouvez pas effectuer de scale-down vers le niveau Standard, car ce niveau ne prend en charge que cinq emplacements de déploiement.For example, if your app has more than five slots, you can't scale it down to Standard tier, because Standard tier only supports five deployment slots.

Ajouter un emplacementAdd slot

Pour que vous puissiez activer plusieurs emplacements de déploiement, l’application doit s’exécuter au niveau Standard, Premium ou Isolé.The app must be running in the Standard, Premium, or Isolated tier in order for you to enable multiple deployment slots.

  1. Dans le portail Azure, accédez à la page de ressources de votre application.In the Azure portal, open your app's resource page.

  2. Dans le volet de navigation gauche, choisissez l’option Emplacements de déploiement (préversion), puis cliquez sur Ajouter un emplacement.In the left navigation, choose the Deployment slots (Preview) option, then click Add Slot.

    Ajouter un nouvel emplacement de déploiement

    Notes

    Si l’application ne s’exécute pas au niveau Standard, Premium ou Isolé, vous recevez un message précisant les niveaux pris en charge pour l’activation de la publication intermédiaire.If the app isn't already in the Standard, Premium, or Isolated tier, you receive a message indicating the supported tiers for enabling staged publishing. À ce stade, vous pouvez sélectionner Mettre à niveau et accéder à l’onglet Mettre à l’échelle de votre application avant de continuer.At this point, you have the option to select Upgrade and navigate to the Scale tab of your app before continuing.

  3. Dans la boîte de dialogue Ajouter un emplacement, nommez l’emplacement, puis indiquez si vous souhaitez cloner la configuration de l’application à partir d’un autre emplacement de déploiement.In the Add a slot dialog, give the slot a name, and select whether to clone app configuration from another existing deployment slot. Cliquez sur Ajouter pour continuer.Click Add to continue.

    Source de configuration

    Vous pouvez cloner la configuration à partir d’un emplacement existant.You can clone configuration from any existing slot. Parmi les paramètres pouvant être clonés figurent des paramètres de l’application, des chaînes de connexion, des versions du framework de langage, des sockets web, la version HTTP et le nombre de bits de la plateforme.Settings that can be cloned include app settings, connection strings, language framework versions, web sockets, HTTP version, and platform bitness.

  4. Une fois l’emplacement ajouté, cliquez sur Fermer pour fermer la boîte de dialogue.After the slot is added, click Close to close the dialog. Le nouvel emplacement est désormais affiché dans la page Emplacements de déploiement (préversion).The new slot is now shown in the Deployment slots (Preview) page. Par défaut, l’option % de trafic est définie sur 0 pour le nouvel emplacement, avec tout le trafic client acheminé vers l’emplacement de production.By default, the Traffic % is set to 0 for the new slot, with all customer traffic routed to the production slot.

  5. Cliquez sur le nouvel emplacement de déploiement pour ouvrir la page des ressources de cet emplacement.Click the new deployment slot to open that slot's resource page.

    Titre de l'emplacement de déploiement

    L’emplacement intermédiaire dispose d’une page de gestion, comme n’importe quelle application App Service.The staging slot has a management page just like any other App Service app. Vous pouvez modifier la configuration de l’emplacement.You can change the slot's configuration. Le nom de l’emplacement est indiqué en haut de la page, pour vous rappeler que c’est l’emplacement de déploiement qui est affiché.The name of the slot is shown at the top of the page to remind you that you're viewing the deployment slot.

  6. Cliquez sur l’URL de l’application dans la page des ressources de l’emplacement.Click the app URL in the slot's resource page. L’emplacement de déploiement possède son propre nom d’hôte ; il s’agit d’une application dynamique.The deployment slot has its own hostname and is also a live app. Pour limiter l’accès public à l’emplacement de déploiement, consultez Restrictions d’adresse IP avec Azure App Service.To limit public access to the deployment slot, see Azure App Service IP Restrictions.

Le nouvel emplacement de déploiement n’a aucun contenu, même si vous clonez les paramètres à partir d’un autre emplacement.The new deployment slot has no content, even if you clone the settings from a different slot. Par exemple, vous pouvez publier sur cet emplacement avec Git.For example, you can publish to this slot with git. Vous pouvez effectuer un déploiement sur l’emplacement à partir d’une autre branche du dépôt, ou d’un dépôt différent.You can deploy to the slot from a different repository branch or a different repository.

Quels sont les paramètres échangés ?Which settings are swapped?

Lorsque vous clonez la configuration depuis un autre emplacement de déploiement, celle-ci est modifiable.When you clone configuration from another deployment slot, the cloned configuration is editable. Par ailleurs, au cours d’un échange, certains éléments de configuration suivent le contenu (éléments non propres à un emplacement) tandis que d’autres restent dans le même emplacement après l’échange (éléments propres à un emplacement).Furthermore, some configuration elements follow the content across a swap (not slot specific) while other configuration elements stay in the same slot after a swap (slot specific). Les listes suivantes représentent les paramètres qui évoluent lorsque vous échangez les emplacements.The following lists show the settings that change when you swap slots.

Paramètres échangés:Settings that are swapped:

  • Paramètres généraux, par exemple versions d’infrastructure, 32/64 bits, sockets webGeneral settings - such as framework version, 32/64-bit, Web sockets
  • Paramètres d’application (peuvent être configurés pour respecter un emplacement)App settings (can be configured to stick to a slot)
  • Chaînes de connexion (peuvent être configurées pour respecter un emplacement)Connection strings (can be configured to stick to a slot)
  • Mappages de gestionnairesHandler mappings
  • Paramètres de surveillance et de diagnosticsMonitoring and diagnostic settings
  • Certificats publicsPublic certificates
  • Contenu WebJobsWebJobs content
  • Connexions hybrides *Hybrid connections *
  • Intégration au réseau virtuel *VNet integration *
  • Points de terminaison de service *Service Endpoints *
  • Azure CDN *Azure CDN *

Fonctionnalités marquées avec un * vont être apportées rattachés à l’emplacement.Features marked with a * are planned to be made sticky to the slot.

Paramètres non échangés :Settings that aren't swapped:

  • Publication des points de terminaisonPublishing endpoints
  • Noms de domaine personnalisésCustom Domain Names
  • Certificats privés et liaisons SSLPrivate certificates and SSL bindings
  • Paramètres de mise à l'échelleScale settings
  • Planificateurs WebJobsWebJobs schedulers
  • Restrictions d’adresse IPIP restrictions
  • Toujours activéAlways On
  • Paramètres de protocole (HTTPS, version TLS, les certificats clients)Protocol Settings (HTTPS, TLS version, client certificates)
  • Paramètres du journal de diagnosticDiagnostic log settings
  • CORSCORS

Pour lier un paramètre d’application ou une chaîne de connexion à un emplacement particulier (non permuté), accédez à la page Paramètres de l’application de cet emplacement, puis cochez la case Paramètre d’emplacement correspondant aux éléments de configuration à lier à cet emplacement.To configure an app setting or connection string to stick to a specific slot (not swapped), navigate to the Application settings page for that slot, then select the Slot Setting box for the configuration elements that should stick to the slot. Le fait de marquer un élément de configuration comme propre à un emplacement indique à App Service qu’il n’est pas permutable.Marking a configuration element as slot specific tells App Service that it's not swappable.

Paramètre de l’emplacement

Permuter deux emplacementsSwap two slots

Vous pouvez permuter des emplacements de déploiement dans la page Emplacements de déploiement (préversion) de votre application.You can swap deployment slots in your app's Deployment slots (Preview) page.

Vous pouvez également permuter des emplacements depuis les pages Vue d’ensemble et Emplacements de déploiement, mais l’ancienne expérience d’interface vous est actuellement proposée.You can also swap slots from the Overview and Deployment slots pages, but currently it gives you the old experience. Ce guide montre comment utiliser la nouvelle interface utilisateur dans la page Emplacements de déploiement (préversion).This guide shows us how to use the new user interface in the Deployment slots (Preview) page.

Important

Avant de permuter une application depuis un emplacement de déploiement sur un emplacement de production, assurez-vous que tous les paramètres sont configurés exactement comme vous le souhaitez dans la cible de l’échange.Before you swap an app from a deployment slot into production, make sure that all settings are configured exactly as you want to have it in the swap target.

Pour échanger les emplacements de déploiement, suivez ces étapes :To swap deployment slots, follow these steps:

  1. Accédez à la page Emplacements de déploiement (préversion) de votre application et cliquez sur Permuter.Navigate to your app's Deployment slots (Preview) page and click Swap.

    Bouton Swap

    La boîte de dialogue Échanger regroupe les paramètres des emplacements source et cible sélectionnés qui vont être permutés.The Swap dialog shows settings in the selected source and target slots that will be changed.

  2. Sélectionnez les emplacements Source et Cible souhaités.Select the desired Source and Target slots. En général, la cible correspond à l’emplacement de production.Usually, the target is the production slot. Cliquez également sur les onglets Modifications sources et Modifications cibles pour vérifier que les changements de configuration à opérer correspondent à ce que vous attendez.Also, click the Source Changes and Target Changes tabs and verify that the configuration changes are expected. Lorsque vous avez terminé, vous pouvez permuter les emplacements immédiatement en cliquant sur Permuter.When finished, you can swap the slots immediately by clicking Swap.

    Échange effectué

    Pour voir comment votre emplacement cible s’exécuterait avec les nouveaux paramètres, avant que l’échange soit réellement effectué, ne cliquez pas sur Permuter, mais suivez les instructions dans Échange avec aperçu.To see how your target slot would run with the new settings before the swap actually happens, don't click Swap, but follow the instructions in Swap with preview.

  3. Lorsque vous avez terminé, fermez la boîte de dialogue en cliquant sur Fermer.When you're finished, close the dialog by clicking Close.

Échange avec aperçu (échange multiphase)Swap with preview (multi-phase swap)

Notes

L’échange avec aperçu n’est pas pris en charge dans les applications web sur Linux.Swap with preview isn't supported in web apps on Linux.

Avant de passer la production en emplacement cible, contrôlez l’exécution de l’application avec les paramètres permutés, préalablement à l’échange.Before swapping into production as the target slot, validate the app runs with the swapped settings before the swap happens. L’emplacement source est également initialisé avant la fin de l’échange, ce qui est aussi souhaitable pour les applications stratégiques.The source slot is also warmed up before the swap completion, which is also desirable for mission-critical applications.

Lorsque vous effectuez un échange avec aperçu, App Service effectue les opérations suivantes lorsque vous démarrez l’échange :When you perform a swap with preview, App Service does the following when you start the swap:

  • Maintien de l’emplacement cible inchangé, de manière à ne pas influer sur la charge de travail existante dans cet emplacement (de production, par exemple).Keeps the target slot unchanged so existing workload on that slot (such as production) isn't affected.
  • Application des éléments de configuration de l’emplacement cible à l’emplacement source, dont les chaînes de connexion spécifiques de l’emplacement et les paramètres de l’application.Applies the configuration elements of the target slot to the source slot, including the slot-specific connection strings and app settings.
  • Redémarrage des processus Worker dans l’emplacement source à l’aide de ces éléments de configuration.Restarts the worker processes on the source slot using these configuration elements. Vous pouvez accéder à l’emplacement source et voir l’exécution de l’application avec les changements de configuration.You can browse the source slot and see the app run with the configuration changes.

Si vous procédez à l’échange dans une étape distincte, App Service déplace l’emplacement source initialisée dans l’emplacement cible, et l’emplacement cible dans l’emplacement source.If you complete the swap in a separate step, App Service moves the warmed-up source slot into the target slot, and the target slot into the source slot. Si vous annulez l’échange, App Service réapplique les éléments de configuration de l’emplacement source à l’emplacement source.If you cancel the swap, App Service reapplies the configuration elements of the source slot to the source slot.

Pour opérer un échange avec aperçu, suivez ces étapes.To swap with preview, follow these steps.

  1. Procédez comme indiqué dans Échanger des emplacements de déploiement, mais sélectionnez Effectuer l’échange avec aperçu.follow the steps in Swap deployment slots but select Perform swap with preview.

    Échange avec aperçu

    La boîte de dialogue montre comment la configuration de l’emplacement source est modifiée dans la phase 1, et comment les emplacements source et cible sont modifiés dans la phase 2.The dialog shows you how the configuration in the source slot changes in phase 1, and how the source and target slot change in phase 2.

  2. Lorsque vous êtes prêt à démarrer l’échange, cliquez sur Démarrer l’échange.When ready to start the swap, click Start Swap.

    Lorsque la phase 1 est terminée, vous en êtes averti dans la boîte de dialogue.When phase 1 completes, you're notified in the dialog. Affichez l’aperçu de l’échange dans l’emplacement source en accédant à https://<app_name>-<source-slot-name>.azurewebsites.net.Preview the swap in the source slot by navigating to https://<app_name>-<source-slot-name>.azurewebsites.net.

  3. Lorsque vous êtes prêt à effectuer l’échange en attente, sélectionnez Terminer l’échange dans Action d’échange et cliquez sur Terminer l’échange.When ready to complete the pending swap, select Complete Swap in Swap action and click Complete Swap.

    Pour annuler un échange en attente, sélectionnez plutôt Annuler l’échange et cliquez sur Annuler l’échange.To cancel a pending swap, select Cancel Swap instead and click Cancel Swap.

  4. Lorsque vous avez terminé, fermez la boîte de dialogue en cliquant sur Fermer.When you're finished, close the dialog by clicking Close.

Pour automatiser un échange multiphase, consultez Automatiser avec PowerShell.To automate a multi-phase swap, see Automate with PowerShell.

Restaurer l’échangeRoll back swap

Si des erreurs se produisent dans l’emplacement cible (par exemple, l’emplacement de production) après une permutation d’emplacements, rétablissez ces deux emplacements comme ils étaient avant l’opération, en les intervertissant immédiatement.If any errors occur in the target slot (for example, the production slot) after a slot swap, restore the slots to their pre-swap states by swapping the same two slots immediately.

Configurer l’échange automatiqueConfigure Auto Swap

Notes

L’échange automatique n’est pas pris en charge dans les applications web sur Linux.Auto Swap isn't supported in web apps on Linux.

L’échange automatique simplifie les scénarios DevOps impliquant un déploiement de l’application en continu, sans démarrage à froid ni temps d’arrêt pour les clients finals de l’application.Auto Swap streamlines DevOps scenarios where you want to deploy your app continuously with zero cold start and zero downtime for end customers of the app. Lorsque l’échange automatique d’un emplacement s’effectue en production, chaque fois que vous envoyez (push) des modifications de votre code à cet emplacement, App Service échange automatiquement l’application en production après son initialisation dans l’emplacement source.When a slot autoswaps into production, every time you push your code changes to that slot, App Service automatically swaps the app into production after it's warmed up in the source slot.

Notes

Avant de configurer l’échange automatique pour l’emplacement de production, envisagez tout d’abord de tester l’échange automatique sur un emplacement cible hors production.Before configuring Auto Swap for the production slot, consider testing Auto Swap on a non-production target slot first.

Pour configurer la fonction Échange automatique, procédez comme suit :To configure Auto Swap, follow these steps:

  1. Accédez à la page des ressources de votre application.Navigate to your app's resource page. Sélectionnez Emplacements de déploiement (préversion) > <emplacement source souhaité > > Paramètres de l’application.Select Deployment slots (Preview) > <desired source slot> > Application settings.

  2. Dans Échange automatique, sélectionnez Activé, ainsi que l’emplacement cible souhaité dans Emplacement d’échange automatique, puis cliquez sur Enregistrer dans la barre de commandes.In Auto Swap, select On, then select the desired target slot in Auto Swap Slot, and click Save in the command bar.

  3. Exécutez un push de code sur l’emplacement source.Execute a code push to the source slot. L’échange automatique se produit peu après, et la mise à jour est appliquée dans l’URL de votre emplacement cible.Auto Swap happens after a short time and the update is reflected at your target slot's URL.

Personnaliser l’initialisationCustom warm-up

Quand vous utilisez Échange automatique, certaines applications peuvent nécessiter quelques actions préparatoires personnalisées avant l’échange.When using Auto-Swap, some apps may require custom warm-up actions before the swap. L’élément de configuration applicationInitialization du fichier web.config vous permet de spécifier les actions d’initialisation personnalisées à exécuter.The applicationInitialization configuration element in web.config lets you specify custom initialization actions to be performed. L’opération d’échange attend la fin de cette mise en route personnalisée pour procéder à la permutation avec l’emplacement cible.The swap operation waits for this custom warm-up to complete before swapping with the target slot. Voici un exemple de fragment web.config.Here is a sample web.config fragment.

<system.webServer>
    <applicationInitialization>
        <add initializationPage="/" hostName="[app hostname]" />
        <add initializationPage="/Home/About" hostName="[app hostname]" />
    </applicationInitialization>
</system.webServer>

Pour plus d’informations sur la personnalisation de la applicationInitialization élément, consultez échecs échange d’emplacement de déploiement les plus courants et comment les résoudre.For more information on customizing the applicationInitialization element, see Most common deployment slot swap failures and how to fix them.

Vous pouvez également personnaliser le comportement d'initialisation en utilisant un ou plusieurs paramètres d'application suivants :You can also customize the warm-up behavior with one or more of the following app settings:

  • WEBSITE_SWAP_WARMUP_PING_PATH: chemin d’accès pour effectuer un test ping afin d'initialiser votre site.WEBSITE_SWAP_WARMUP_PING_PATH: The path to ping to warmup your site. Ajoutez ce paramètre d’application en spécifiant un chemin d’accès personnalisé qui commence par une barre oblique comme valeur.Add this app setting by specifying a custom path that begins with a slash as the value. Par exemple : /statuscheck.For example, /statuscheck. La valeur par défaut est /.The default value is /.
  • WEBSITE_SWAP_WARMUP_PING_STATUSES: Codes de réponse HTTP valides pour l’opération d'initialisation.WEBSITE_SWAP_WARMUP_PING_STATUSES: Valid HTTP response codes for the warm-up operation. Ajoutez ce paramètre d’application avec une liste séparée par des virgules de codes HTTP.Add this app setting with a comma-separated list of HTTP codes. Par exemple : 200,202.For example: 200,202 . Si le code d’état renvoyé ne figure pas dans la liste, les opérations d'initialisation et de basculement sont arrêtées.If the returned status code is not in the list, the warmup and swap operations are stopped. Par défaut, tous les codes de réponse sont valides.By default, all response codes are valid.

Superviser l’échangeMonitor swap

Si l’exécution de l’opération d’échange prend beaucoup de temps, vous pouvez obtenir des informations sur cette opération dans le journal d’activité.If the swap operation takes a long time to complete, you can get information on the swap operation in the activity log.

Dans la page des ressources de votre application sur le portail, sélectionnez Journal d’activité dans le volet de navigation gauche.In your app's resource page in the portal, in the left-hand navigation, select Activity log.

Une opération d’échange s’affiche dans la requête de journal en tant que Swap Web App Slots.A swap operation appears in the log query as Swap Web App Slots. Vous pouvez la développer et sélectionner l’une des sous-opérations ou erreurs afin d’afficher le contenu en détail.You can expand it and select one of the suboperations or errors to see the details.

Acheminer le traficRoute traffic

Par défaut, toutes les requêtes clientes vers les URL de production de l’application (http://<app_name>.azurewebsites.net) sont acheminées vers l’emplacement de production.By default, all client requests to the app's production URL (http://<app_name>.azurewebsites.net) are routed to the production slot. Vous pouvez acheminer une partie du trafic vers un autre emplacement.You can route a portion of the traffic to another slot. Cette fonctionnalité est utile si vous avez besoin d’un retour d’expérience utilisateur pour une nouvelle mise à jour, mais que vous n’êtes pas prêt à la publier en production.This feature is useful if you need user feedback for a new update, but you're not ready to release it to production.

Acheminer le trafic de production automatiquementRoute production traffic automatically

Pour router le trafic de production automatiquement, suivez ces étapes :To route production traffic automatically, follow these steps:

  1. Accédez à la page des ressources de votre application et sélectionnez Emplacements de déploiement (préversion).Navigate to your app's resource page and select Deployment slots (Preview).

  2. Dans la colonne % de trafic de l’emplacement vers lequel vous souhaitez acheminer le trafic, spécifiez un pourcentage (compris entre 0 et 100) pour représenter la quantité totale de trafic à diriger.In the Traffic % column of the slot you want to route to, specify a percentage (between 0 and 100) to represent the amount of total traffic you want to route. Cliquez sur Enregistrer.Click Save.

Une fois le paramètre enregistré, le pourcentage de clients spécifié est acheminé de manière aléatoire vers l’emplacement hors production.Once the setting is saved, the specified percentage of clients is randomly routed to the non-production slot.

Lorsqu’un client est automatiquement acheminé vers un emplacement particulier, il est « épinglé » à cet emplacement pendant la durée de cette session cliente.Once a client is automatically routed to a specific slot, it's "pinned" to that slot for the life of that client session. Dans le navigateur client, vous pouvez voir à quel emplacement votre session est épinglée en examinant le cookie x-ms-routing-name dans les en-têtes HTTP.On the client browser, you can see which slot your session is pinned to by looking at the x-ms-routing-name cookie in your HTTP headers. Une requête qui est acheminée vers l’emplacement « intermédiaire » contient le cookie x-ms-routing-name=staging.A request that's routed to the "staging" slot has the cookie x-ms-routing-name=staging. Une requête qui est acheminée vers l’emplacement de production a le cookie x-ms-routing-name=self.A request that's routed to the production slot has the cookie x-ms-routing-name=self.

Acheminer le trafic de production manuellementRoute production traffic manually

Parallèlement au routage automatique du trafic, App Service peut acheminer les requêtes vers un emplacement particulier.In addition to automatic traffic routing, App Service can route requests to a specific slot. Cela est utile lorsque vous souhaitez que vos utilisateurs puissent choisir d’accepter ou de refuser votre application bêta.This is useful when you want your users to be able to opt-into or opt-out of your beta app. Pour router le trafic de production manuellement, vous utilisez le paramètre de requête x-ms-routing-name.To route production traffic manually, you use the x-ms-routing-name query parameter.

Par exemple, pour permettre aux utilisateurs de refuser votre application bêta, vous pouvez placer ce lien sur votre page web :To let users opt out of your beta app, for example, you can put this link in your web page:

<a href="<webappname>.azurewebsites.net/?x-ms-routing-name=self">Go back to production app</a>

La chaîne x-ms-routing-name=self spécifie l’emplacement de production.The string x-ms-routing-name=self specifies the production slot. Dès lors que le navigateur client accède au lien, non seulement il est redirigé vers l’emplacement de production, mais chaque requête ultérieure possède le cookie x-ms-routing-name=self qui épingle la session à l’emplacement de production.Once the client browser accesses the link, not only is it redirected to the production slot, but every subsequent request has the x-ms-routing-name=self cookie that pins the session to the production slot.

Pour permettre aux utilisateurs d’accepter votre application bêta, définissez le même paramètre de requête pour le nom de l’emplacement hors production, par exemple :To let users opt in to your beta app, set the same query parameter to the name of the non-production slot, for example:

<webappname>.azurewebsites.net/?x-ms-routing-name=staging

Par défaut, les emplacements de nouveau bénéficient d’une règle de routage de 0%, affichés en gris.By default, new slots are given a routing rule of 0%, shown in grey. En définissant explicitement cette valeur sur 0% (affichés en texte noir), vos utilisateurs peuvent accéder à l’emplacement intermédiaire manuellement à l’aide de le x-ms-routing-name paramètre de requête, mais ils ne seront pas routées vers l’emplacement automatiquement dans la mesure où le pourcentage de routage est défini sur 0.By explicitly setting this value to 0% (shown in black text), your users can access the staging slot manually by using the x-ms-routing-name query parameter, but they will not be routed to the slot automatically since the routing percentage is set to 0. Il s’agit d’un scénario avancé où vous pouvez « masquer » votre emplacement intermédiaire du public tout en permettant aux équipes internes tester les modifications sur l’emplacement.This is an advanced scenario where you can "hide" your staging slot from the public while allowing internal teams to test changes on the slot.

Supprimer l’emplacementDelete slot

Accédez à la page des ressources de votre application.Navigate to your app's resource page. Sélectionnez Emplacements de déploiement (préversion) > <emplacement à supprimer > > Vue d’ensemble.Select Deployment slots (Preview) > <slot to delete> > Overview. Cliquez sur Supprimer dans la barre de commandes.Click Delete in the command bar.

Supprimer un emplacement de déploiement

Automatiser avec PowerShellAutomate with PowerShell

Notes

Cet article a été mis à jour pour tenir compte de l’utilisation du nouveau module Az d’Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Vous pouvez toujours utiliser le module AzureRM, qui continue à recevoir des correctifs de bogues jusqu’à au moins décembre 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Pour en savoir plus sur le nouveau module Az et la compatibilité avec AzureRM, consultez Présentation du nouveau module Az d’Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Pour des instructions d’installation du module Az, consultez Installer Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Azure PowerShell est un module qui fournit des applets de commande pour gérer Azure via Windows PowerShell, notamment la prise en charge de la gestion des emplacements de déploiement des applications dans Azure App Service.Azure PowerShell is a module that provides cmdlets to manage Azure through Windows PowerShell, including support for managing deployment slots in Azure App Service.

Pour plus d’informations sur l’installation et la configuration d’Azure PowerShell et sur l’authentification d’Azure PowerShell avec votre abonnement Azure, consultez la page Installation et configuration d’Azure PowerShell.For information on installing and configuring Azure PowerShell, and on authenticating Azure PowerShell with your Azure subscription, see How to install and configure Microsoft Azure PowerShell.


Créer une application webCreate web app

New-AzWebApp -ResourceGroupName [resource group name] -Name [app name] -Location [location] -AppServicePlan [app service plan name]

Créer un emplacementCreate slot

New-AzWebAppSlot -ResourceGroupName [resource group name] -Name [app name] -Slot [deployment slot name] -AppServicePlan [app service plan name]

Initialiser un échange avec aperçu (échange multiphase) et appliquer la configuration de l’emplacement de destination à l’emplacement sourceInitiate swap with preview (multi-phase swap) and apply destination slot configuration to source slot

$ParametersObject = @{targetSlot  = "[slot name – e.g. “production”]"}
Invoke-AzResourceAction -ResourceGroupName [resource group name] -ResourceType Microsoft.Web/sites/slots -ResourceName [app name]/[slot name] -Action applySlotConfig -Parameters $ParametersObject -ApiVersion 2015-07-01

Annuler un échange en attente (échange avec aperçu) et restaurer la configuration de l’emplacement sourceCancel pending swap (swap with review) and restore source slot configuration

Invoke-AzResourceAction -ResourceGroupName [resource group name] -ResourceType Microsoft.Web/sites/slots -ResourceName [app name]/[slot name] -Action resetSlotConfig -ApiVersion 2015-07-01

Échanger des emplacements de déploiementSwap deployment slots

$ParametersObject = @{targetSlot  = "[slot name – e.g. “production”]"}
Invoke-AzResourceAction -ResourceGroupName [resource group name] -ResourceType Microsoft.Web/sites/slots -ResourceName [app name]/[slot name] -Action slotsswap -Parameters $ParametersObject -ApiVersion 2015-07-01

Surveiller les événements d’échange dans le journal d’activitéMonitor swap events in the activity Log

Get-AzLog -ResourceGroup [resource group name] -StartTime 2018-03-07 -Caller SlotSwapJobProcessor  

Supprimer l’emplacementDelete slot

Remove-AzResource -ResourceGroupName [resource group name] -ResourceType Microsoft.Web/sites/slots –Name [app name]/[slot name] -ApiVersion 2015-07-01

Automatiser avec CLIAutomate with CLI

Pour connaître les commandes de l’interface Azure CLI pour les emplacements de déploiement, consultez az webapp deployment slot.For Azure CLI commands for deployment slots, see az webapp deployment slot.

Étapes suivantesNext steps

Bloquer l’accès à des emplacements hors productionBlock access to non-production slots