Azure App Service app klonen met PowerShell

Notitie

U wordt aangeraden de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Met de release van Microsoft Azure PowerShell versie 1.1.0 is een nieuwe optie toegevoegd waarmee New-AzWebApp u een bestaande App Service app kunt klonen naar een nieuw gemaakte app in een andere regio of in dezelfde regio. Met deze optie kunnen klanten snel en eenvoudig een aantal apps in verschillende regio's implementeren.

Het klonen van apps wordt ondersteund voor Standard-, Premium-, Premium V2- en Isolated App Service-plannen. Voor de nieuwe functie gelden dezelfde beperkingen als voor App Service back-upfunctie. Zie Back-up maken van een app in Azure App Service.

Een bestaande app klonen

Scenario: een bestaande app in de regio VS - zuid-centraal en u wilt de inhoud klonen naar een nieuwe app in de regio VS - noord-centraal. Dit kan worden bereikt door de Azure Resource Manager-versie van de PowerShell-cmdlet te gebruiken om een nieuwe app te maken met de -SourceWebApp optie .

Als u de naam van de resourcegroep kent 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-abonnement wilt maken, kunt u de opdracht gebruikenNew-AzAppServicePlan, zoals in het volgende voorbeeld

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

Met de New-AzWebApp opdracht kunt u de nieuwe app maken in de regio VS - noord-centraal en deze koppelen aan een bestaande App Service Plan. Bovendien kunt u dezelfde resourcegroep gebruiken als de bron-app of een nieuwe resourcegroep definiƫren, zoals wordt weergegeven in 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 bijbehorende implementatiesites, moet u de IncludeSourceWebAppSlots parameter gebruiken. Houd er rekening mee dat de parameter alleen wordt ondersteund voor het IncludeSourceWebAppSlots klonen van een hele app, inclusief alle sleuven. De volgende PowerShell-opdracht demonstreert het gebruik van die parameter 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 binnen dezelfde regio wilt klonen, moet u een nieuwe resourcegroep en een nieuw App Service-plan in dezelfde regio maken en vervolgens de volgende PowerShell-opdracht gebruiken 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 Environment

Scenario: een bestaande app in de regio VS - zuid-centraal en u wilt de inhoud klonen naar een nieuwe app naar een bestaande App Service Environment (ASE).

Als u de naam van de resourcegroep kent 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 de naam van de ASE en de naam van de resourcegroep kent waartoe de ASE behoort, kunt u de nieuwe app maken in de bestaande ASE, zoals 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 vereist vanwege een verouderde reden, maar wordt genegeerd wanneer u de app in een ASE maakt.

Een bestaande app-sleuf klonen

Scenario: u wilt een bestaande implementatiesite van een app klonen naar een nieuwe app of een nieuwe site. De nieuwe app kan zich in dezelfde regio bevinden als de oorspronkelijke app-site of in een andere regio.

Als u de naam van de resourcegroep kent die de bron-app bevat, kunt u de volgende PowerShell-opdracht gebruiken om de gegevens van de bron-app-site (in dit geval genaamd source-appslot) op te halen die zijn gekoppeld aan source-app:

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

De volgende opdracht demonstreert het maken van een kloon van de bron-app 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

Het maken van apps voor meerdere regio's en het configureren van Azure Traffic Manager om verkeer naar al deze apps te routeren, is een belangrijk scenario om ervoor te zorgen dat de apps van klanten maximaal beschikbaar zijn. Wanneer u een bestaande app kloont, hebt u de mogelijkheid om beide apps te verbinden met een nieuw Traffic Manager-profiel of een bestaand traffic manager-profiel. Alleen 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 tijdens het configureren van een Azure Resource Manager Traffic Manager-profiel dat beide apps bevat. De volgende opdracht demonstreert het maken van een kloon van de bron-app 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

Nieuwe gekloonde app toevoegen aan een bestaand Traffic Manager-profiel

Scenario: u hebt al een Azure Resource Manager Traffic Manager-profiel en u wilt beide apps als eindpunten toevoegen. Hiervoor moet u eerst de bestaande traffic manager-profiel-id samenstellen. U hebt de abonnements-id, de naam van de resourcegroep 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 id van het verkeersbeheerprogramma hebt gebruikt, ziet u met de volgende opdracht hoe u een kloon van de bron-app naar een nieuwe app maakt terwijl deze wordt toegevoegd 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

Notitie

Als u een foutbericht krijgt met de tekst 'SSL-validatie voor de hostnaam van Traffic Manager mislukt' wordt u aangeraden het kenmerk -IgnoreCustomHostNames te gebruiken in de PowerShell-cmdlet tijdens het uitvoeren van de kloonbewerking of anders de portal te gebruiken.

Huidige beperkingen

Dit zijn de beperkingen van het klonen van apps:

  • Instellingen voor automatisch schalen worden niet gekloond
  • Instellingen voor back-upschema's worden niet gekloond
  • VNET-instellingen worden niet gekloond
  • App Insights worden niet automatisch ingesteld op de doel-app
  • Easy Auth-instellingen worden niet gekloond
  • Kudu-extensie wordt niet gekloond
  • TiP-regels worden niet gekloond
  • Database-inhoud wordt niet gekloond
  • Uitgaande IP-adressen worden gewijzigd als u naar een andere schaaleenheid kloont
  • Niet beschikbaar voor Linux-apps
  • Beheerde identiteiten worden niet gekloond
  • Niet beschikbaar voor functie-apps

Referenties