Freigeben über


Klonen einer Azure App Service-App mithilfe von PowerShell

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

In diesem Artikel wird erläutert, wie Sie eine vorhandene App Service-App klonen können, um eine neue App in einer anderen Region oder in derselben Region zu erstellen. Sie können mehrere Apps schnell und einfach in verschiedenen Regionen bereitstellen.

Das Klonen von Apps wird in Standardebenen und höher und in isolierten Ebenen unterstützt. Das Feature hat die gleichen Einschränkungen wie das Feature "App Service Backup", siehe Sichern einer App in Azure App Service.

Klonen einer vorhandenen App

Szenario: Sie möchten den Inhalt einer vorhandenen App in der Region South Central US in eine neue App in der Region North Central US klonen. Sie können die Azure Resource Manager-Version des PowerShell-Cmdlets verwenden, um eine neue App mithilfe der -SourceWebApp Option zu erstellen.

Wenn Sie den Namen der Ressourcengruppe kennen, die die Quell-App enthält, können Sie den folgenden PowerShell-Befehl verwenden, um die Informationen der Quell-App abzurufen, in diesem Fall mit dem Namen source-webapp:

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

Um einen neuen App Service-Plan zu erstellen, können Sie den Befehl New-AzAppServicePlan wie im folgenden Beispiel verwenden:

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

Mithilfe des New-AzWebApp Befehls können Sie die neue App in der Region Nord-Zentral-USA erstellen und mit einem vorhandenen App Service-Plan verknüpfen. Darüber hinaus können Sie dieselbe Ressourcengruppe wie die Quell-App verwenden oder eine neue Ressourcengruppe definieren. Sehen Sie sich den folgenden Befehl an:

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

Um eine vorhandene App zu klonen, einschließlich aller zugeordneten Bereitstellungsplätze, müssen Sie den IncludeSourceWebAppSlots Parameter verwenden. Dieser Parameter wird nur für das Klonen einer gesamten App einschließlich aller zugehörigen Slots unterstützt. Der folgende PowerShell-Befehl veranschaulicht die Verwendung dieses Parameters mit dem New-AzWebApp Befehl:

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

Um eine vorhandene App innerhalb derselben Region zu klonen, erstellen Sie eine neue Ressourcengruppe und einen neuen App Service-Plan in derselben Region. Verwenden Sie dann den folgenden PowerShell-Befehl, um die App zu klonen:

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

Klonen einer vorhandenen App in eine App-Dienstumgebung

Szenario: Sie möchten den Inhalt einer vorhandenen App in der Region South Central US in eine neue App in einer vorhandenen App Service Environment klonen.

Wenn Sie den Namen der Ressourcengruppe kennen, die die Quell-App enthält, können Sie den folgenden PowerShell-Befehl verwenden, um die Informationen der Quell-App abzurufen, in diesem Fall mit dem Namen source-webapp:

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

Mit dem Namen der App-Dienstumgebung und dem Namen der Ressourcengruppe, zu der die App-Dienstumgebung gehört, können Sie die neue App in der vorhandenen App-Dienstumgebung erstellen. Der Prozess wird im folgenden Befehl angezeigt:

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

Der Location Parameter ist aus älteren Gründen erforderlich, wird jedoch ignoriert, wenn Sie die App in einer App Service-Umgebung erstellen.

Klonen eines vorhandenen App-Slots

Szenario: Sie möchten einen vorhandenen Bereitstellungsplatz einer App entweder mit einer neuen App oder einem neuen Slot klonen. Die neue App kann sich in derselben Region wie der ursprüngliche App-Slot oder in einer anderen Region befinden.

Wenn Sie den Namen der Ressourcengruppe kennen, die die Quellen-App enthält, können Sie den folgenden PowerShell-Befehl verwenden, um die Informationen des Quell-App-Slots (in diesem Fall mit dem Namen source-appslot) abzurufen, der an source-app gebunden ist.

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

Der folgende Befehl veranschaulicht, wie Sie einen Klon der Quell-App für eine neue App erstellen:

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

Konfigurieren des Traffic Managers beim Klonen einer App

Wenn Sie Apps mit mehreren Regionen erstellen und Azure Traffic Manager so konfigurieren, dass der Datenverkehr an diese Apps weitergeleitet wird, empfehlen wir, dass Kunden-Apps hoch verfügbar sind. Wenn Sie eine vorhandene App klonen, können Sie beide Apps entweder mit einem neuen Traffic Manager-Profil oder mit einem vorhandenen verbinden. Nur die Azure Resource Manager-Version von Traffic Manager wird unterstützt.

Erstellen eines neuen Traffic Manager-Profils beim Klonen einer App

Szenario: Sie möchten eine App in eine andere Region klonen, während Sie ein Azure Resource Manager Traffic Manager-Profil konfigurieren, das beide Apps enthält. Der folgende Befehl veranschaulicht das Erstellen eines Klons der Quell-App zu einer neuen App beim Konfigurieren eines neuen Traffic Manager-Profils:

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

Hinzufügen einer neuen geklonten App zu einem vorhandenen Traffic Manager-Profil

Szenario: Sie verfügen bereits über ein Azure Resource Manager Traffic Manager-Profil und möchten beide Apps als Endpunkte hinzufügen. Erstellen Sie zunächst die vorhandene Traffic Manager-Profil-ID. Sie benötigen die Abonnement-ID, den Namen der Ressourcengruppe und den Namen des vorhandenen Traffic Manager-Profils.

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

Nachdem Sie über die Traffic Manager-ID verfügen, veranschaulicht der folgende Befehl, wie Sie einen Klon der Quell-App zu einer neuen App erstellen, während Sie sie einem vorhandenen Traffic Manager-Profil hinzufügen:

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

Hinweis

Wenn Sie einen Fehler erhalten, der angibt, dass die SSL-Überprüfung beim Hostnamen des Datenverkehrsmanagers fehlschlägt, schlagen wir vor, Sie verwenden das -Attribut im PowerShell-Cmdlet, während Sie den Klonvorgang ausführen. Alternativ können Sie das Azure-Portal verwenden.

Aktuelle Einschränkungen

Hier finden Sie die bekannten Einschränkungen für das App-Klonen:

  • Autoskaleneinstellungen werden nicht geklont.
  • Die Einstellungen für den Sicherungszeitplan werden nicht geklont.
  • Application Insights wird nicht automatisch für die Ziel-App eingerichtet.
  • Einfache Authentifizierungseinstellungen werden nicht geklont.
  • Kudu-Erweiterungen werden nicht geklont.
  • TiP-Regeln werden nicht geklont.
  • Datenbankinhalte werden nicht geklont.
  • Ausgehende IP-Adressen ändern sich, wenn Sie auf eine andere Skalierungseinheit klonen.
  • Linux-Apps sind nicht verfügbar.
  • Verwaltete Identitäten werden nicht geklont.
  • Funktions-Apps sind nicht verfügbar.