Dela via


Kloning av Azure App Service-appar med PowerShell

Kommentar

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Information om hur du kommer igång finns i Installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Med lanseringen av Microsoft Azure PowerShell version 1.1.0 har ett nytt alternativ lagts till New-AzWebApp som gör att du kan klona en befintlig App Service-app till en nyligen skapad app i en annan region eller i samma region. Med det här alternativet kan kunder snabbt och enkelt distribuera ett antal appar i olika regioner.

Appkloning stöds för App Service-planerna Standard, Premium, Premium V2 och Isolerad. Den nya funktionen använder samma begränsningar som apptjänstsäkerhetskopieringsfunktionen, se Säkerhetskopiera en app i Azure App Service.

Klona en befintlig app

Scenario: En befintlig app i regionen USA, södra centrala och du vill klona innehållet till en ny app i regionen USA, norra centrala. Du kan göra det genom att använda Azure Resource Manager-versionen av PowerShell-cmdleten för att skapa en ny app med alternativet -SourceWebApp .

Om du känner till resursgruppens namn som innehåller källappen kan du använda följande PowerShell-kommando för att hämta källappens information (i det här fallet med namnet source-webapp):

$srcapp = Get-AzWebApp -ResourceGroupName SourceAzureResourceGroup -Name source-webapp

Om du vill skapa en ny App Service-plan kan du använda New-AzAppServicePlan kommandot som i följande exempel

New-AzAppServicePlan -Location "North Central US" -ResourceGroupName DestinationAzureResourceGroup -Name DestinationAppServicePlan -Tier Standard

Med kommandot New-AzWebApp kan du skapa den nya appen i regionen USA, norra centrala och koppla den till en befintlig App Service-plan. Dessutom kan du använda samma resursgrupp som källappen eller definiera en ny resursgrupp, som du ser i följande kommando:

$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "North Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp

Om du vill klona en befintlig app, inklusive alla associerade distributionsplatser, måste du använda parametern IncludeSourceWebAppSlots . Observera att parametern IncludeSourceWebAppSlots endast stöds för kloning av en hel app, inklusive alla dess platser. Följande PowerShell-kommando visar användningen av parametern med New-AzWebApp kommandot :

$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "North Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp -IncludeSourceWebAppSlots

Om du vill klona en befintlig app i samma region måste du skapa en ny resursgrupp och en ny App Service-plan i samma region och sedan använda följande PowerShell-kommando för att klona appen:

$destapp = New-AzWebApp -ResourceGroupName NewAzureResourceGroup -Name dest-webapp -Location "South Central US" -AppServicePlan NewAppServicePlan -SourceWebApp $srcapp

Klona en befintlig app till en App Service-miljön

Scenario: En befintlig app i regionen USA, södra centrala och du vill klona innehållet till en ny app till en befintlig App Service-miljön (ASE).

Om du känner till resursgruppens namn som innehåller källappen kan du använda följande PowerShell-kommando för att hämta källappens information (i det här fallet med namnet source-webapp):

$srcapp = Get-AzWebApp -ResourceGroupName SourceAzureResourceGroup -Name source-webapp

Om du känner till ASE-namnet och resursgruppens namn som ASE tillhör kan du skapa den nya appen i den befintliga ASE:n, som du ser i följande kommando:

$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "North Central US" -AppServicePlan DestinationAppServicePlan -ASEName DestinationASE -ASEResourceGroupName DestinationASEResourceGroupName -SourceWebApp $srcapp

Parametern Location krävs på grund av en äldre orsak, men den ignoreras när du skapar appen i en ASE.

Klona ett befintligt appfack

Scenario: Du vill klona ett befintligt distributionsfack för en app till antingen en ny app eller ett nytt fack. Den nya appen kan finnas i samma region som det ursprungliga appfacket eller i en annan region.

Om du känner till resursgruppens namn som innehåller källappen kan du använda följande PowerShell-kommando för att hämta källappplatsens information (i det här fallet med namnet source-appslot) kopplad till source-app:

$srcappslot = Get-AzWebAppSlot -ResourceGroupName SourceAzureResourceGroup -Name source-app -Slot source-appslot

Följande kommando visar hur du skapar en klon av källappen till en ny app:

$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-app -Location "North Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcappslot

Konfigurera Traffic Manager vid kloning av en app

Att skapa appar i flera regioner och konfigurera Azure Traffic Manager för att dirigera trafik till alla dessa appar är ett viktigt scenario för att säkerställa att kundernas appar är mycket tillgängliga. När du klonar en befintlig app kan du ansluta båda apparna till antingen en ny Traffic Manager-profil eller en befintlig. Endast Azure Resource Manager-versionen av Traffic Manager stöds.

Skapa en ny Traffic Manager-profil vid kloning av en app

Scenario: Du vill klona en app till en annan region samtidigt som du konfigurerar en Azure Resource Manager Traffic Manager-profil som innehåller båda apparna. Följande kommando visar hur du skapar en klon av källappen till en ny app när du konfigurerar en ny Traffic Manager-profil:

$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "South Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp -TrafficManagerProfileName newTrafficManagerProfile

Lägga till ny klonad app i en befintlig Traffic Manager-profil

Scenario: Du har redan en Azure Resource Manager Traffic Manager-profil och vill lägga till båda apparna som slutpunkter. För att göra det måste du först sätta ihop det befintliga traffic manager-profil-ID:t. Du behöver prenumerations-ID: t, resursgruppens namn och det befintliga traffic manager-profilnamnet.

$TMProfileID = "/subscriptions/<Your subscription ID goes here>/resourceGroups/<Your resource group name goes here>/providers/Microsoft.TrafficManagerProfiles/ExistingTrafficManagerProfileName"

När du har haft trafikhanterar-ID:t visar följande kommando hur du skapar en klon av källappen till en ny app samtidigt som du lägger till dem i en befintlig Traffic Manager-profil:

$destapp = New-AzWebApp -ResourceGroupName <Resource group name> -Name dest-webapp -Location "South Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp -TrafficManagerProfileId $TMProfileID

Kommentar

Om du får ett felmeddelande om att "SSL-valideringen på traffic manager-värdnamnet misslyckas" föreslår vi att du använder attributet -IgnoreCustomHostNames i powershell-cmdleten när du utför kloningsåtgärden eller använder portalen.

Aktuella begränsningar

Här är de kända begränsningarna för appkloning:

  • Inställningar för automatisk skalning klonas inte
  • Inställningar för säkerhetskopieringsschema klonas inte
  • Inställningar för virtuella nätverk klonas inte
  • App Insights konfigureras inte automatiskt i målappen
  • Easy Auth-inställningar klonas inte
  • Kudu-tillägget klonas inte
  • TiP-regler klonas inte
  • Databasinnehåll klonas inte
  • Utgående IP-adresser ändras vid kloning till en annan skalningsenhet
  • Inte tillgängligt för Linux-appar
  • Hanterade identiteter klonas inte
  • Inte tillgängligt för funktionsappar

Referenser