Delen via


Azure-app Service-app klonen met behulp van PowerShell

Notitie

Het wordt aanbevolen 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 New-AzWebApp waarmee u een bestaande App Service-app kunt klonen naar een nieuwe app in een andere regio of in dezelfde regio. Met deze optie kunnen klanten snel en eenvoudig een aantal apps implementeren in verschillende regio's.

Het klonen van apps wordt ondersteund voor Standard-, Premium-, Premium V2- en Isolated App Service-plannen. De nieuwe functie gebruikt dezelfde beperkingen als de functie App Service Backup. Zie Back-ups 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. U kunt dit doen met behulp van de Azure Resource Manager-versie van de PowerShell-cmdlet 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 genaamd source-webapp):

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

Als u een nieuw App Service-plan wilt maken, kunt u de opdracht gebruiken New-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 bestaand 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 met inbegrip van alle gekoppelde implementatiesites wilt klonen, 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 sites. 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, 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-omgeving

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 genaamd source-webapp):

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

Als u de naam van de ASE kent en de naam van de resourcegroep 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 deze wordt genegeerd wanneer u de app in een ASE maakt.

Een bestaande app-site 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 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

Het maken van apps met 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, 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

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. 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 verkeersbeheer-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

Notitie

Als u een foutmelding krijgt met de melding 'SSL-validatie op de traffic manager-hostnaam mislukt', raden we u aan het kenmerk -IgnoreCustomHostNames te gebruiken in de PowerShell-cmdlet tijdens het uitvoeren van de kloonbewerking of het gebruik van de portal.

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

Verwijzingen