Delen via


Een Azure App Service-app klonen met behulp van PowerShell

Opmerking

We raden u aan om de Azure Az PowerShell-module te gebruiken om met Azure te communiceren. Zie Azure PowerShell installeren om aan de slag te gaan. Om te leren hoe u naar de Az PowerShell-module kunt migreren, zie Migrate Azure PowerShell from AzureRM to Az.

In dit artikel wordt uitgelegd hoe u een bestaande App Service-app kunt klonen om een nieuwe app te maken in een andere regio of in dezelfde regio. U kunt snel en eenvoudig meerdere apps in verschillende regio's implementeren.

Het klonen van apps wordt ondersteund in Standard-lagen en hoger en in geïsoleerde lagen. De functie heeft dezelfde beperkingen als de functie App Service Backup. Zie Een back-up maken van een app in Azure App Service.

Een bestaande app klonen

Scenario: U wilt de inhoud van een bestaande app in de regio VS - zuid-centraal klonen naar een nieuwe app in de regio VS - noord-centraal. U kunt de Azure Resource Manager-versie van de PowerShell-cmdlet gebruiken om een nieuwe app te maken met behulp van de -SourceWebApp optie.

Wanneer u de naam weet van de resourcegroep die de bron-app bevat, kunt u de volgende PowerShell-opdracht gebruiken om de gegevens van de bron-app op te halen, in dit geval met de naam source-webapp:

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

Als u een nieuw App Service-plan wilt maken, kunt u de New-AzAppServicePlan opdracht gebruiken die wordt weergegeven in het volgende voorbeeld:

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

Met behulp van de New-AzWebApp opdracht kunt u de nieuwe app maken in de regio VS - noord-centraal en deze koppelen aan een bestaand App Service-plan. Bovendien kunt u dezelfde resourcegroep gebruiken als de bron-app of een nieuwe resourcegroep definiëren. Zie de volgende opdracht:

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

Als u een bestaande app wilt klonen, inclusief alle gekoppelde implementatiesites, moet u de IncludeSourceWebAppSlots parameter gebruiken. Deze parameter wordt alleen ondersteund voor het klonen van een hele app, inclusief al zijn slots. De volgende PowerShell-opdracht laat het gebruik van die parameter zien met de New-AzWebApp opdracht:

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

Als u een bestaande app in dezelfde regio wilt klonen, maakt u een nieuwe resourcegroep en een nieuw App Service-plan in dezelfde regio. Gebruik vervolgens de volgende PowerShell-opdracht om de app te klonen:

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

Een bestaande app klonen naar een App Service-omgeving

Scenario: U wilt de inhoud van een bestaande app in de regio VS - zuid-centraal klonen naar een nieuwe app in een bestaande App Service-omgeving.

Wanneer u de naam weet van de resourcegroep die de bron-app bevat, kunt u de volgende PowerShell-opdracht gebruiken om de gegevens van de bron-app op te halen, in dit geval met de naam source-webapp:

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

Met de naam van de App Service-omgeving en de naam van de resourcegroep waartoe de App Service-omgeving behoort, kunt u de nieuwe app maken in de bestaande App Service-omgeving. Het proces wordt weergegeven in de volgende opdracht:

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

De Location parameter is om verouderde redenen vereist, maar wordt genegeerd wanneer u de app in een App Service-omgeving maakt.

Een bestaande app-slot klonen

Scenario: U wilt een bestaand implementatieslot van een app klonen naar een nieuwe app of een nieuw slot. De nieuwe app kan zich in dezelfde regio bevinden als de oorspronkelijke app-site of in een andere regio.

Wanneer u de naam weet van de resourcegroep die de bron-app bevat, kunt u de volgende PowerShell-opdracht gebruiken om informatie over de bron-appslot (in dit geval genaamd source-appslot) op te halen die gekoppeld is aan source-app.

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

De volgende opdracht laat zien hoe u een kloon van de bron-app maakt naar een nieuwe app:

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

Traffic Manager configureren tijdens het klonen van een app

Wanneer u apps met meerdere regio's maakt en Azure Traffic Manager configureert om verkeer naar deze apps te routeren, wordt u aangeraden dat klant-apps maximaal beschikbaar zijn. Wanneer u een bestaande app kloont, kunt u beide apps verbinden met een nieuw Traffic Manager-profiel of een bestaand traffic manager-profiel. Alleen de Azure Resource Manager-versie van Traffic Manager wordt ondersteund.

Een nieuw Traffic Manager-profiel maken tijdens het klonen van een app

Scenario: U wilt een app klonen naar een andere regio, terwijl u een Azure Resource Manager Traffic Manager-profiel configureert dat beide apps bevat. De volgende opdracht laat zien hoe u een kloon van de bron-app maakt naar een nieuwe app tijdens het configureren van een nieuw Traffic Manager-profiel:

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

Een nieuwe gekloonde app toevoegen aan een bestaand Traffic Manager-profiel

Scenario: U hebt al een Azure Resource Manager Traffic Manager-profiel en wilt beide apps als eindpunten toevoegen. Stel eerst de bestaande Traffic Manager-profiel-id samen. U hebt de abonnements-id, de resourcegroepnaam en de bestaande Traffic Manager-profielnaam nodig.

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

Nadat u de Traffic Manager-id hebt, ziet u met de volgende opdracht hoe u een kloon van de bron-app maakt naar een nieuwe app terwijl u deze toevoegt aan een bestaand Traffic Manager-profiel:

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

Opmerking

Als er een foutbericht wordt weergegeven dat SSL-validatie op de hostnaam van Traffic Manager mislukt, raden we u aan het -IgnoreCustomHostNames kenmerk in de PowerShell-cmdlet te gebruiken terwijl u de kloonbewerking uitvoert. U kunt ook Azure Portal gebruiken.

Huidige beperkingen

Dit zijn de beperkingen van het klonen van apps:

  • Instellingen voor automatisch schalen worden niet gekloond.
  • Back-upschema-instellingen worden niet gekloond.
  • Application Insights wordt niet automatisch ingesteld voor de doel-app.
  • Easy Auth-instellingen worden niet gekloond.
  • Kudu-extensies worden niet gekloond.
  • TiP-regels worden niet gekloond.
  • Database-inhoud wordt niet gekloond.
  • Uitgaande IP-adressen worden gewijzigd als u kloont naar een andere schaaleenheid.
  • Linux-apps zijn niet beschikbaar.
  • Beheerde identiteiten worden niet gekloond.
  • Functie-apps zijn niet beschikbaar.