Konfigurera mellanlagrings miljöer i Azure App ServiceSet up staging environments in Azure App Service

När du distribuerar din webbapp, webbapp på Linux, mobil Server del eller API-appen till Azure App Servicekan du använda en separat distributions plats i stället för standard produktions platsen när du kör på standard-, Premium-eller isolerade App Service plans nivå.When you deploy your web app, web app on Linux, mobile back end, or API app to Azure App Service, you can use a separate deployment slot instead of the default production slot when you're running in the Standard, Premium, or Isolated App Service plan tier. Distributions platser är Live-appar med sina egna värdnamn.Deployment slots are live apps with their own host names. App-innehåll och konfigurations element kan växlas mellan två distributions platser, inklusive produktions platsen.App content and configurations elements can be swapped between two deployment slots, including the production slot.

Distribution av ditt program till en icke-produktions plats har följande fördelar:Deploying your application to a non-production slot has the following benefits:

  • Du kan validera ändringar av appar på en mellanlagrings plats innan du växlar med produktions platsen.You can validate app changes in a staging deployment slot before swapping it with the production slot.
  • Om du distribuerar en app till en plats och byter ut den till produktion ser du till att alla instanser av facket har värmts upp innan du växlar till produktion.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. Detta eliminerar nedtid när du distribuerar din app.This eliminates downtime when you deploy your app. Omdirigeringen av trafiken är sömlös och inga förfrågningar tas bort på grund av växlings åtgärder.The traffic redirection is seamless, and no requests are dropped because of swap operations. Du kan automatisera hela arbets flödet genom att konfigurera Automatisk växling när det inte behövs för verifiering före växling.You can automate this entire workflow by configuring auto swap when pre-swap validation isn't needed.
  • Efter en växling har facket med den tidigare mellanlagrade appen nu den tidigare produktions appen.After a swap, the slot with previously staged app now has the previous production app. Om ändringarna som utbyts till produktions platsen inte är som du förväntar dig kan du utföra samma växling direkt för att få tillbaka din "senast fungerande webbplats".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.

Varje App Service plan nivå har stöd för ett annat antal distributions platser.Each App Service plan tier supports a different number of deployment slots. Det kostar inget extra att använda distributions platser.There's no additional charge for using deployment slots. För att ta reda på antalet platser som din apps-nivå stöder, se App Service gränser.To find out the number of slots your app's tier supports, see App Service limits.

Om du vill skala din app till en annan nivå ser du till att mål nivån stöder antalet platser som appen redan använder.To scale your app to a different tier, make sure that the target tier supports the number of slots your app already uses. Om din app till exempel har fler än fem platser kan du inte skala ned den till standard nivån eftersom standard nivån endast stöder fem distributions fack.For example, if your app has more than five slots, you can't scale it down to the Standard tier, because the Standard tier supports only five deployment slots.

Lägg till en platsAdd a slot

Appen måste köras på nivån standard, Premiumeller isolerad för att du ska kunna aktivera flera distributions platser.The app must be running in the Standard, Premium, or Isolated tier in order for you to enable multiple deployment slots.

  1. Öppna appens resurs sidai Azure Portal.In the Azure portal, open your app's resource page.

  2. I det vänstra fönstret väljer du distributions platser > Lägg till plats.In the left pane, select Deployment slots > Add Slot.

    Lägg till en ny distributions plats

    Anteckning

    Om appen inte redan finns på standard-, Premium-eller den isolerade nivån får du ett meddelande som anger vilka nivåer som stöds för aktivering av mellanlagrad publicering.If the app isn't already in the Standard, Premium, or Isolated tier, you receive a message that indicates the supported tiers for enabling staged publishing. Nu har du möjlighet att välja uppgradering och gå till fliken Scale (skala ) i appen innan du fortsätter.At this point, you have the option to select Upgrade and go to the Scale tab of your app before continuing.

  3. I dialog rutan Lägg till en plats anger du platsens namn och anger om du vill klona en app-konfiguration från en annan distributions plats.In the Add a slot dialog box, give the slot a name, and select whether to clone an app configuration from another deployment slot. Välj Lägg till för att fortsätta.Select Add to continue.

    Konfigurations källa

    Du kan klona en konfiguration från en befintlig plats.You can clone a configuration from any existing slot. Inställningar som kan klonas är inställningar för appar, anslutnings strängar, språk Ramverks versioner, Web Sockets, HTTP-version och plattforms bitness.Settings that can be cloned include app settings, connection strings, language framework versions, web sockets, HTTP version, and platform bitness.

  4. När platsen har lagts till väljer du Stäng för att stänga dialog rutan.After the slot is added, select Close to close the dialog box. Den nya platsen visas nu på sidan distributions platser .The new slot is now shown on the Deployment slots page. Som standard är trafik% inställd på 0 för den nya platsen, där all kund trafik dirigeras till produktions platsen.By default, Traffic % is set to 0 for the new slot, with all customer traffic routed to the production slot.

  5. Välj den nya distributions platsen för att öppna platsens resurs sida.Select the new deployment slot to open that slot's resource page.

    Rubrik för distributions plats

    Mellanlagringsplatsen har en hanterings sida precis som andra App Service-appar.The staging slot has a management page just like any other App Service app. Du kan ändra platsens konfiguration.You can change the slot's configuration. Namnet på facket visas längst upp på sidan för att påminna dig om att du visar distributions platsen.The name of the slot is shown at the top of the page to remind you that you're viewing the deployment slot.

  6. Välj appens URL på platsens resurs sida.Select the app URL on the slot's resource page. Distributions platsen har sitt eget värdnamn och är även en Live-app.The deployment slot has its own host name and is also a live app. Information om hur du begränsar offentlig åtkomst till distributions platsen finns i Azure App Service IP-begränsningar.To limit public access to the deployment slot, see Azure App Service IP restrictions.

Den nya distributions platsen har inget innehåll, även om du klonar inställningarna från en annan plats.The new deployment slot has no content, even if you clone the settings from a different slot. Du kan till exempel Publicera till den här platsen med git.For example, you can publish to this slot with Git. Du kan distribuera till platsen från en annan databas gren eller en annan lagrings plats.You can deploy to the slot from a different repository branch or a different repository.

Vad händer under en växlingWhat happens during a swap

Steg för växlings åtgärdSwap operation steps

När du växlar två platser (vanligt vis från en mellanlagringsplats till produktions platsen) gör App Service följande för att se till att mål platsen inte upplever drift stopp:When you swap two slots (usually from a staging slot into the production slot), App Service does the following to ensure that the target slot doesn't experience downtime:

  1. Använd följande inställningar från mål platsen (till exempel produktions platsen) till alla instanser av käll platsen:Apply the following settings from the target slot (for example, the production slot) to all instances of the source slot:

    Alla dessa fall utlöser alla instanser på käll platsen för omstart.Any of these cases trigger all instances in the source slot to restart. Vid växling med förhands granskningmarkerar detta slutet av den första fasen.During swap with preview, this marks the end of the first phase. Växlings åtgärden har pausats och du kan kontrol lera att käll platsen fungerar korrekt med mål platsens inställningar.The swap operation is paused, and you can validate that the source slot works correctly with the target slot's settings.

  2. Vänta tills varje instans på käll platsen har startats om.Wait for every instance in the source slot to complete its restart. Om någon instans inte kan starta om återställer växlings åtgärden alla ändringar till käll platsen och stoppar åtgärden.If any instance fails to restart, the swap operation reverts all changes to the source slot and stops the operation.

  3. Om lokal cache har Aktiver ATS utlöser du initiering av lokalt cacheminne genom att göra en http-begäran till program roten ("/") på varje instans av käll platsen.If local cache is enabled, trigger local cache initialization by making an HTTP request to the application root ("/") on each instance of the source slot. Vänta tills varje instans returnerar HTTP-svar.Wait until each instance returns any HTTP response. Initiering av lokal cache orsakar en omstart av varje instans.Local cache initialization causes another restart on each instance.

  4. Om Automatisk växling har Aktiver ATS med anpassad uppvärmning, Utlös program initiering genom att göra en http-begäran till program roten ("/") på varje instans av käll platsen.If auto swap is enabled with custom warm-up, trigger Application Initiation by making an HTTP request to the application root ("/") on each instance of the source slot.

    Om applicationInitialization inte anges utlöses en HTTP-begäran till käll platsens program rot på varje instans.If applicationInitialization isn't specified, trigger an HTTP request to the application root of the source slot on each instance.

    Om en instans returnerar ett HTTP-svar anses det vara värmat.If an instance returns any HTTP response, it's considered to be warmed up.

  5. Om alla instanser på käll platsen har värmts upp korrekt byter du ut de två platserna genom att växla routningsregler för de två platserna.If all instances on the source slot are warmed up successfully, swap the two slots by switching the routing rules for the two slots. Efter det här steget har mål platsen (till exempel produktions platsen) den app som tidigare har förvärmts på käll platsen.After this step, the target slot (for example, the production slot) has the app that's previously warmed up in the source slot.

  6. Nu när käll platsen har för hands växlings appen tidigare på mål platsen, utför du samma åtgärd genom att tillämpa alla inställningar och starta om instanserna.Now that the source slot has the pre-swap app previously in the target slot, perform the same operation by applying all settings and restarting the instances.

När som helst i växlings åtgärden sker allt arbete vid initiering av de växlade apparna på käll platsen.At any point of the swap operation, all work of initializing the swapped apps happens on the source slot. Mål platsen är online medan käll platsen förbereds och förvärmas, oavsett var växlingen lyckas eller Miss lyckas.The target slot remains online while the source slot is being prepared and warmed up, regardless of where the swap succeeds or fails. Om du vill byta mellan en mellanlagringsplats med produktions platsen kontrollerar du att produktions platsen alltid är mål platsen.To swap a staging slot with the production slot, make sure that the production slot is always the target slot. På så sätt kommer växlings åtgärden inte att påverka din produktions program.This way, the swap operation doesn't affect your production app.

Vilka inställningar byts ut?Which settings are swapped?

När du klonar konfiguration från en annan distributions plats kan den klonade konfigurationen redige ras.When you clone configuration from another deployment slot, the cloned configuration is editable. Vissa konfigurations element följer innehållet i en växling (inte en viss plats), medan andra konfigurations element stannar kvar på samma plats efter en växling (plats Specific).Some configuration elements follow the content across a swap (not slot specific), whereas other configuration elements stay in the same slot after a swap (slot specific). I följande listor visas de inställningar som ändras när du byter platser.The following lists show the settings that change when you swap slots.

Inställningar som växlas:Settings that are swapped:

  • Allmänna inställningar, till exempel Ramverks version, 32/64-bitars, Web SocketsGeneral settings, such as framework version, 32/64-bit, web sockets
  • Appinställningar (kan konfigureras för att fästa på en plats)App settings (can be configured to stick to a slot)
  • Anslutnings strängar (kan konfigureras att fästa mot en plats)Connection strings (can be configured to stick to a slot)
  • Mappningar för hanterareHandler mappings
  • Offentliga certifikatPublic certificates
  • WebJobs-innehållWebJobs content
  • Hybrid anslutningar *Hybrid connections *
  • Integrering av virtuella nätverk *Virtual network integration *
  • Tjänst slut punkter *Service endpoints *
  • Azure Content Delivery Network *Azure Content Delivery Network *

Funktioner som har marker ATS med en asterisk (*) planeras att inte växlas.Features marked with an asterisk (*) are planned to be unswapped.

Inställningar som inte har växlats:Settings that aren't swapped:

  • Publicerings slut punkterPublishing endpoints
  • Egna domännamnCustom domain names
  • Icke-offentliga certifikat och TLS/SSL-inställningarNon-public certificates and TLS/SSL settings
  • Skalnings inställningarScale settings
  • Jobb scheman för WebJobsWebJobs schedulers
  • IP-begränsningarIP restrictions
  • Alltid påAlways On
  • Inställningar för diagnostikloggarDiagnostic log settings
  • Resurs delning mellan ursprung (CORS)Cross-origin resource sharing (CORS)

Anteckning

Vissa inställningar för appar som tillämpas på inställningar som inte har växlats växlas inte heller.Certain app settings that apply to unswapped settings are also not swapped. Till exempel, eftersom inställningarna för diagnostikloggar inte växlas, växlas inte relaterade appinställningar som WEBSITE_HTTPLOGGING_RETENTION_DAYS och DIAGNOSTICS_AZUREBLOBRETENTIONDAYS även om de inte visas som plats inställningar.For example, since diagnostic log settings are not swapped, related app settings like WEBSITE_HTTPLOGGING_RETENTION_DAYS and DIAGNOSTICS_AZUREBLOBRETENTIONDAYS are also not swapped, even if they don't show up as slot settings.

Om du vill konfigurera en app-inställning eller anslutnings sträng för att fästa mot en angiven plats (som inte växlas) går du till sidan konfiguration för den platsen.To configure an app setting or connection string to stick to a specific slot (not swapped), go to the Configuration page for that slot. Lägg till eller redigera en inställning och välj sedan distributions plats inställning.Add or edit a setting, and then select deployment slot setting. Om du markerar den här kryss rutan visas App Service att inställningen inte kan växlas.Selecting this check box tells App Service that the setting is not swappable.

Plats inställning

Växla två platserSwap two slots

Du kan växla distributions platser på sidan distributions platser för appar och översikts sidan.You can swap deployment slots on your app's Deployment slots page and the Overview page. Teknisk information om plats växlingen finns i vad som händer under växlingen.For technical details on the slot swap, see What happens during swap.

Viktigt

Innan du byter ut en app från en distributions plats i produktion kontrollerar du att produktionen är mål platsen och att alla inställningar i käll platsen är konfigurerade exakt som du vill ha dem i produktion.Before you swap an app from a deployment slot into production, make sure that production is your target slot and that all settings in the source slot are configured exactly as you want to have them in production.

Växla mellan distributions platser:To swap deployment slots:

  1. Gå till sidan distributions platser för appen och välj Byt.Go to your app's Deployment slots page and select Swap.

    Växlings knapp

    Dialog rutan Växla visar inställningar i de valda käll-och mål platserna som ska ändras.The Swap dialog box shows settings in the selected source and target slots that will be changed.

  2. Välj önskade käll -och mål platser.Select the desired Source and Target slots. Normalt är målet produktions platsen.Usually, the target is the production slot. Välj också flikarna käll ändringar och mål ändringar och kontrol lera att konfigurations ändringarna förväntas.Also, select the Source Changes and Target Changes tabs and verify that the configuration changes are expected. När du är klar kan du växla platserna direkt genom att välja Växla.When you're finished, you can swap the slots immediately by selecting Swap.

    Slutföra växlingen

    Om du vill se hur mål platsen kommer att köras med de nya inställningarna innan växlingen faktiskt sker väljer du inte växling, utan följer anvisningarna i Växla med förhands granskning.To see how your target slot would run with the new settings before the swap actually happens, don't select Swap, but follow the instructions in Swap with preview.

  3. När du är klar stänger du dialog rutan genom att välja Stäng.When you're finished, close the dialog box by selecting Close.

Om du har problem kan du läsa Felsöka växlingar.If you have any problems, see Troubleshoot swaps.

Växla med förhands granskning (växling i flera faser)Swap with preview (multi-phase swap)

Innan du byter till produktion som mål plats kontrollerar du att appen körs med de växlade inställningarna.Before you swap into production as the target slot, validate that the app runs with the swapped settings. Käll platsen har också förvärmts innan växlings förslutning, vilket är önskvärt för verksamhets kritiska program.The source slot is also warmed up before the swap completion, which is desirable for mission-critical applications.

När du utför en växling med för hands versionen utför App Service samma växlings åtgärd men pausas efter det första steget.When you perform a swap with preview, App Service performs the same swap operation but pauses after the first step. Du kan sedan verifiera resultatet på mellanlagringsplatsen innan du slutför växlingen.You can then verify the result on the staging slot before completing the swap.

Om du avbryter växlingen App Service återanvänder konfigurations elementen på käll platsen.If you cancel the swap, App Service reapplies configuration elements to the source slot.

För att växla med för hands version:To swap with preview:

  1. Följ stegen i Växla distributions fack men Välj utför växling med förhands granskning.Follow the steps in Swap deployment slots but select Perform swap with preview.

    Växla med för hands version

    I dialog rutan visas hur konfigurationen i käll platsen ändras i fas 1, och hur käll-och mål platsen ändras i fas 2.The dialog box 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. När du är redo att starta växlingen väljer du Starta växling.When you're ready to start the swap, select Start Swap.

    När fas 1 är klar får du ett meddelande i dialog rutan.When phase 1 finishes, you're notified in the dialog box. Förhandsgranska växlingen på käll platsen genom att gå till https://<app_name>-<source-slot-name>.azurewebsites.net.Preview the swap in the source slot by going to https://<app_name>-<source-slot-name>.azurewebsites.net.

  3. När du är redo att slutföra den väntande växlingen väljer du fullständig växling i växlings åtgärd och väljer Slutför växling.When you're ready to complete the pending swap, select Complete Swap in Swap action and select Complete Swap.

    Om du vill avbryta en väntande växling väljer du Avbryt växling i stället.To cancel a pending swap, select Cancel Swap instead.

  4. När du är klar stänger du dialog rutan genom att välja Stäng.When you're finished, close the dialog box by selecting Close.

Om du har problem kan du läsa Felsöka växlingar.If you have any problems, see Troubleshoot swaps.

Om du vill automatisera en växling i flera faser, se Automatisera med PowerShell.To automate a multi-phase swap, see Automate with PowerShell.

Återställa en växlingRoll back a swap

Om några fel inträffar på mål platsen (t. ex. produktions platsen) efter en plats växling, återställer du platserna till deras före växlings tillstånd genom att växla samma två platser direkt.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.

Konfigurera automatisk växlingConfigure auto swap

Anteckning

Automatisk växling stöds inte i Web Apps på Linux.Auto swap isn't supported in web apps on Linux.

Automatisk växling effektiviserar Azure DevOps-scenarier där du vill distribuera din app kontinuerligt med noll som kall startar och noll nedtid för kunder i appen.Auto swap streamlines Azure DevOps scenarios where you want to deploy your app continuously with zero cold starts and zero downtime for customers of the app. När automatisk växling har Aktiver ATS från en plats till produktion, byter App Service automatiskt appen till produktion när den har värmts upp på käll platsen när du skickar kod ändringarna till den platsen.When auto swap is enabled from a slot 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.

Anteckning

Innan du konfigurerar automatisk växling för produktions platsen bör du överväga att testa automatisk växling på ett mål fack som inte är för produktion.Before you configure auto swap for the production slot, consider testing auto swap on a non-production target slot.

Så här konfigurerar du automatisk växling:To configure auto swap:

  1. Gå till appens resurs sida.Go to your app's resource page. Välj distributions platser > <önskad käll plats > > konfiguration > allmänna inställningar.Select Deployment slots > <desired source slot> > Configuration > General settings.

  2. För Automatisk växling aktive radväljer du .For Auto swap enabled, select On. Välj sedan önskad mål plats för Automatisk växling distributions platsoch välj Spara i kommando fältet.Then select the desired target slot for Auto swap deployment slot, and select Save on the command bar.

    Alternativ för att konfigurera automatisk växling

  3. Kör en kod push till käll platsen.Execute a code push to the source slot. Automatisk växling sker efter en kort tid och uppdateringen återspeglas på mål platsens URL.Auto swap happens after a short time, and the update is reflected at your target slot's URL.

Om du har problem kan du läsa Felsöka växlingar.If you have any problems, see Troubleshoot swaps.

Ange anpassad uppvärmningSpecify custom warm-up

Vissa appar kan kräva anpassade värme åtgärder innan växlingen.Some apps might require custom warm-up actions before the swap. Med konfigurations elementet applicationInitialization i Web. config kan du ange anpassade initierings åtgärder.The applicationInitialization configuration element in web.config lets you specify custom initialization actions. Växlings åtgärden väntar på att den här anpassade uppvärmningen ska slutföras innan den växlar till mål platsen.The swap operation waits for this custom warm-up to finish before swapping with the target slot. Här är ett exempel på Web. config-fragment.Here's a sample web.config fragment.

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

Mer information om hur du anpassar applicationInitialization-elementet finns i de flesta vanliga växlings fel i distributions fack och hur du åtgärdar dem.For more information on customizing the applicationInitialization element, see Most common deployment slot swap failures and how to fix them.

Du kan också anpassa det varmaste sättet med en eller båda av följande appinställningar:You can also customize the warm-up behavior with one or both of the following app settings:

  • WEBSITE_SWAP_WARMUP_PING_PATH: sökvägen till ping för att värma upp platsen.WEBSITE_SWAP_WARMUP_PING_PATH: The path to ping to warm up your site. Lägg till den här appens inställningen genom att ange en anpassad sökväg som börjar med ett snedstreck som värde.Add this app setting by specifying a custom path that begins with a slash as the value. Ett exempel är /statuscheck.An example is /statuscheck. Standardvärdet är /.The default value is /.
  • WEBSITE_SWAP_WARMUP_PING_STATUSES: giltiga HTTP-svars koder för den varmande åtgärden.WEBSITE_SWAP_WARMUP_PING_STATUSES: Valid HTTP response codes for the warm-up operation. Lägg till den här appens inställningen med en kommaavgränsad lista över HTTP-koder.Add this app setting with a comma-separated list of HTTP codes. Ett exempel är 200,202.An example is 200,202 . Om den returnerade status koden inte finns i listan stoppas uppvärmnings och växlings åtgärder.If the returned status code isn't in the list, the warmup and swap operations are stopped. Som standard är alla svars koder giltiga.By default, all response codes are valid.

Anteckning

Konfigurations elementet <applicationInitialization> är en del av varje app-Start, medan de två app-inställningarna för inläsnings beteende endast gäller för fack växlingar.The <applicationInitialization> configuration element is part of each app start-up, whereas the two warm-up behavior app settings apply only to slot swaps.

Om du har problem kan du läsa Felsöka växlingar.If you have any problems, see Troubleshoot swaps.

Övervaka en växlingMonitor a swap

Om växlings åtgärden tar lång tid att slutföra kan du få information om växlings åtgärden i aktivitets loggen.If the swap operation takes a long time to complete, you can get information on the swap operation in the activity log.

På appens resurs sida i portalen väljer du aktivitets loggi det vänstra fönstret.On your app's resource page in the portal, in the left pane, select Activity log.

En växlings åtgärd visas i logg frågan som Swap Web App Slots.A swap operation appears in the log query as Swap Web App Slots. Du kan expandera den och välja en av under åtgärder eller fel för att se information.You can expand it and select one of the suboperations or errors to see the details.

Dirigera trafikRoute traffic

Som standard dirigeras alla klient begär anden till appens produktions-URL (http://<app_name>.azurewebsites.net) till produktions platsen.By default, all client requests to the app's production URL (http://<app_name>.azurewebsites.net) are routed to the production slot. Du kan dirigera en del av trafiken till en annan plats.You can route a portion of the traffic to another slot. Den här funktionen är användbar om du behöver feedback från användaren för en ny uppdatering, men du inte är redo att släppa den på produktionen.This feature is useful if you need user feedback for a new update, but you're not ready to release it to production.

Dirigera produktions trafik automatisktRoute production traffic automatically

Så här dirigerar du produktions trafiken automatiskt:To route production traffic automatically:

  1. Gå till appens resurs sida och välj distributions platser.Go to your app's resource page and select Deployment slots.

  2. I kolumnen Traffic% på den plats som du vill dirigera till anger du ett procenttal (mellan 0 och 100) för att representera den totala trafik som du vill dirigera.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. Välj Spara.Select Save.

    Ange en trafik procent

När inställningen har sparats dirigeras den angivna procent andelen av klienter slumpmässigt till den icke-produktions platsen.After the setting is saved, the specified percentage of clients is randomly routed to the non-production slot.

När en klient dirigeras automatiskt till en speciell plats, är den "fäst" på den platsen under den aktuella klient sessionen.After a client is automatically routed to a specific slot, it's "pinned" to that slot for the life of that client session. I klientens webbläsare kan du se vilka platser som din session fästs på genom att titta på x-ms-routing-name cookie i dina HTTP-huvuden.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. En begäran som dirigeras till "mellanlagring"-platsen har cookie-x-ms-routing-name=staging.A request that's routed to the "staging" slot has the cookie x-ms-routing-name=staging. En begäran som dirigeras till produktions platsen har cookien x-ms-routing-name=self.A request that's routed to the production slot has the cookie x-ms-routing-name=self.

Anteckning

Bredvid Azure-portalen kan du också använda kommandot az webapp traffic-routing set i Azure CLI för att ställa in procent andelar från CI/CD-verktyg som DevOps pipelines eller andra Automation-system.Next to the Azure Portal, you can also use the az webapp traffic-routing set command in the Azure CLI to set the routing percentages from CI/CD tools like DevOps pipelines or other automation systems.

Dirigera produktions trafik manuelltRoute production traffic manually

Förutom automatisk trafik dirigering kan App Service dirigera begär anden till en angiven plats.In addition to automatic traffic routing, App Service can route requests to a specific slot. Detta är användbart när du vill att användarna ska kunna välja eller avanmäla din Beta-app.This is useful when you want your users to be able to opt in to or opt out of your beta app. Om du vill dirigera produktions trafiken manuellt använder du parametern x-ms-routing-name fråga.To route production traffic manually, you use the x-ms-routing-name query parameter.

Du kan till exempel använda den här länken på din webb sida om du vill låta användarna välja att använda beta appen:To let users opt out of your beta app, for example, you can put this link on your webpage:

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

Strängen x-ms-routing-name=self anger produktions platsen.The string x-ms-routing-name=self specifies the production slot. När klient läsaren har åtkomst till länken omdirigeras den till produktions platsen.After the client browser accesses the link, it's redirected to the production slot. Varje efterföljande begäran har x-ms-routing-name=self cookie som fäster sessionen på produktions platsen.Every subsequent request has the x-ms-routing-name=self cookie that pins the session to the production slot.

Om du vill låta användarna välja beta-appen ställer du in samma frågeparameter till namnet på den plats som inte är för produktion.To let users opt in to your beta app, set the same query parameter to the name of the non-production slot. Här är ett exempel:Here's an example:

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

Som standard tilldelas nya platser en regel för routning av 0%, som visas i grått.By default, new slots are given a routing rule of 0%, shown in grey. När du uttryckligen ställer in det här värdet på 0% (visas i svart text) kan användarna komma åt mellanlagringsplatsen manuellt med hjälp av x-ms-routing-name Frågeparametern.When you explicitly set 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. Men de dirigeras inte till facket automatiskt eftersom routningsdomänens procents ATS är inställd på 0.But they won't be routed to the slot automatically because the routing percentage is set to 0. Det här är ett avancerat scenario där du kan "dölja" mellanlagringsplatsen från allmänheten samtidigt som du tillåter interna team att testa ändringar på platsen.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.

Ta bort en platsDelete a slot

Gå till appens resurs sida.Go to your app's resource page. Välj distributions platser > <plats för att ta bort > > Översikt.Select Deployment slots > <slot to delete> > Overview. Välj ta bort i kommando fältet.Select Delete on the command bar.

Ta bort ett distributions fack

Automatisera med PowerShellAutomate with PowerShell

Anteckning

Den här artikeln har uppdaterats till att använda den nya Azure PowerShell Az-modulen.This article has been updated to use the new Azure PowerShell Az module. Du kan fortfarande använda modulen AzureRM som kommer att fortsätta att ta emot felkorrigeringar fram till december 2020 eller längre.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Mer information om den nya Az-modulen och AzureRM-kompatibilitet finns i Introduktion till den nya Azure PowerShell Az-modulen.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Instruktioner för installation av Az-modulen finns i Installera Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Azure PowerShell är en modul som tillhandahåller cmdlets för att hantera Azure via Windows PowerShell, inklusive stöd för att hantera distributions platser i 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.

Information om hur du installerar och konfigurerar Azure PowerShell och hur du autentiserar Azure PowerShell med din Azure-prenumeration finns i så här installerar och konfigurerar du Microsoft 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.


Skapa ett webbprogramCreate a web app

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

Skapa en platsCreate a slot

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

Påbörja en växling med en förhands granskning (växling vid flera faser) och Använd destinations plats konfigurationen för käll platsenInitiate a swap with a preview (multi-phase swap), and apply destination slot configuration to the 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

Avbryt en väntande växling (Byt till granskning) och Återställ käll plats konfigurationenCancel a pending swap (swap with review) and restore the 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

Växla distributions fackSwap 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

Övervaka växlings händelser i aktivitets loggenMonitor swap events in the activity log

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

Ta bort en platsDelete a slot

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

Automatisera med ARM-mallarAutomate with ARM templates

Arm-mallar är deklarativ JSON-filer som används för att automatisera distributionen och konfigurationen av Azure-resurser.ARM Templates are declarative JSON files used to automate the deployment and configuration of Azure resources. Om du vill byta plats på platser med ARM-mallar anger du två egenskaper för resurserna Microsoft. Web/Sites/fackes och Microsoft. Web/Sites :To swap slots using ARM templates, you will set two properties on the Microsoft.Web/sites/slots and Microsoft.Web/sites resources:

  • buildVersion: det här är en sträng egenskap som representerar den aktuella versionen av appen som distribuerats på platsen.buildVersion: this is a string property which represents the current version of the app deployed in the slot. Exempel: "v1", "1.0.0.1" eller "2019-09-20T11:53:25.2887393-07:00".For example: "v1", "1.0.0.1", or "2019-09-20T11:53:25.2887393-07:00".
  • targetBuildVersion: det här är en sträng egenskap som anger vad buildVersion platsen ska ha.targetBuildVersion: this is a string property that specifies what buildVersion the slot should have. Om targetBuildVersion inte är samma som den aktuella buildVersion, utlöser detta växlings åtgärden genom att söka efter platsen som har den angivna buildVersion.If the targetBuildVersion does not equal the current buildVersion, then this will trigger the swap operation by finding the slot which has the specified buildVersion.

Exempel ARM-mallExample ARM Template

Följande ARM-mall kommer att uppdatera buildVersion för mellanlagringsplatsen och ange targetBuildVersion på produktions platsen.The following ARM template will update the buildVersion of the staging slot and set the targetBuildVersion on the production slot. Detta byter ut de två platserna.This will swap the two slots. Mallen förutsätter att du redan har en webapp som skapats med en plats med namnet "mellanlagring".The template assumes you already have a webapp created with a slot named "staging".

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "my_site_name": {
            "defaultValue": "SwapAPIDemo",
            "type": "String"
        },
        "sites_buildVersion": {
            "defaultValue": "v1",
            "type": "String"
        }
    },
    "resources": [
        {
            "type": "Microsoft.Web/sites/slots",
            "apiVersion": "2018-02-01",
            "name": "[concat(parameters('my_site_name'), '/staging')]",
            "location": "East US",
            "kind": "app",
            "properties": {
                "buildVersion": "[parameters('sites_buildVersion')]"
            }
        },
        {
            "type": "Microsoft.Web/sites",
            "apiVersion": "2018-02-01",
            "name": "[parameters('my_site_name')]",
            "location": "East US",
            "kind": "app",
            "dependsOn": [
                "[resourceId('Microsoft.Web/sites/slots', parameters('my_site_name'), 'staging')]"
            ],
            "properties": {
                "targetBuildVersion": "[parameters('sites_buildVersion')]"
            }
        }        
    ]
}

Den här ARM-mallen är idempotenta, vilket innebär att den kan köras upprepade gånger och producera samma tillstånd för platserna.This ARM template is idempotent, meaning that it can be executed repeatedly and produce the same state of the slots. Efter den första körningen kommer targetBuildVersion att matcha den aktuella buildVersion, så en växling kommer inte att utlösas.After the first execution, targetBuildVersion will match the current buildVersion, so a swap will not be triggered.

Automatisera med CLIAutomate with the CLI

Azure CLI -kommandon för distributions platser finns i AZ webapp Deployment slot.For Azure CLI commands for deployment slots, see az webapp deployment slot.

Felsöka växlingarTroubleshoot swaps

Om ett fel inträffar under en plats växlingär det inloggat i D:\home\LogFiles\eventlog.XML.If any error occurs during a slot swap, it's logged in D:\home\LogFiles\eventlog.xml. Den är också inloggad i den programspecifika fel loggen.It's also logged in the application-specific error log.

Här följer några vanliga växlings fel:Here are some common swap errors:

  • En HTTP-begäran till program roten har uppnåtts.An HTTP request to the application root is timed. Växlings åtgärden väntar i 90 sekunder för varje HTTP-begäran och försöker upp till 5 gånger.The swap operation waits for 90 seconds for each HTTP request, and retries up to 5 times. Om alla nya försök har överskridits stoppas växlings åtgärden.If all retries are timed out, the swap operation is stopped.

  • Initieringen av den lokala cachen kan Miss förfalla när innehållet i appen överskrider den lokala disk kvoten som angetts för den lokala cachenLocal cache initialization might fail when the app content exceeds the local disk quota specified for the local cache. Mer information finns i Översikt över Local cache.For more information, see Local cache overview.

  • Vid anpassad uppvärmninggörs HTTP-begäranden internt (utan att gå via den externa URL: en).During custom warm-up, the HTTP requests are made internally (without going through the external URL). De kan inte utföras med vissa regler för URL-omskrivning i Web. config. Till exempel kan regler för omdirigering av domän namn eller tvingande HTTPS förhindra att värme begär Anden når appens kod.They can fail with certain URL rewrite rules in Web.config. For example, rules for redirecting domain names or enforcing HTTPS can prevent warm-up requests from reaching the app code. Undvik det här problemet genom att ändra dina omskrivnings regler genom att lägga till följande två villkor:To work around this issue, modify your rewrite rules by adding the following two conditions:

    <conditions>
      <add input="{WARMUP_REQUEST}" pattern="1" negate="true" />
      <add input="{REMOTE_ADDR}" pattern="^100?\." negate="true" />
      ...
    </conditions>
    
  • Utan en anpassad värme kan du fortfarande blockera HTTP-förfrågningar om reglerna för URL-omskrivning.Without a custom warm-up, the URL rewrite rules can still block HTTP requests. Undvik det här problemet genom att ändra reglerna för att skriva om genom att lägga till följande villkor:To work around this issue, modify your rewrite rules by adding the following condition:

    <conditions>
      <add input="{REMOTE_ADDR}" pattern="^100?\." negate="true" />
      ...
    </conditions>
    
  • Vissa regler för IP-begränsning kan förhindra att växlings åtgärden skickar HTTP-förfrågningar till din app.Some IP restriction rules might prevent the swap operation from sending HTTP requests to your app. IPv4-adress intervall som börjar med 10. och 100. är interna för distributionen.IPv4 address ranges that start with 10. and 100. are internal to your deployment. Du bör tillåta dem att ansluta till din app.You should allow them to connect to your app.

  • När plats växlingen har växlats kan appen uppleva oväntade omstarter.After slot swaps, the app may experience unexpected restarts. Detta beror på att när du har växlat över bindningen för värdnamn, är bindnings bindningen inte synkroniserad, vilket inte leder till omstarter.This is because after a swap, the hostname binding configuration goes out of sync, which by itself doesn't cause restarts. Vissa underliggande lagrings händelser (till exempel lagrings volym växling vid fel) kan dock identifiera dessa avvikelser och tvinga alla arbets processer att starta om.However, certain underlying storage events (such as storage volume failovers) may detect these discrepancies and force all worker processes to restart. Om du vill minimera de här typerna av omstarter ställer du in inställningen förWEBSITE_ADD_SITENAME_BINDINGS_IN_APPHOST_CONFIG=1 appalla platser.To minimize these types of restarts, set the WEBSITE_ADD_SITENAME_BINDINGS_IN_APPHOST_CONFIG=1 app setting on all slots. Den här appens inställning fungerar dock inte med Windows Communication Foundation (WCF)-appar.However, this app setting does not work with Windows Communication Foundation (WCF) apps.

Nästa stegNext steps

Blockera åtkomst till platser som inte är för produktionBlock access to non-production slots