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