Azure App Service klonování aplikací pomocí PowerShellu

Poznámka

K interakci s Azure doporučujeme použít modul Azure Az PowerShell. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

S vydáním Microsoft Azure PowerShell verze 1.1.0 byla přidána nová možnost, New-AzWebApp která umožňuje klonovat existující App Service aplikaci do nově vytvořené aplikace v jiné oblasti nebo ve stejné oblasti. Tato možnost umožňuje zákazníkům rychle a snadno nasadit řadu aplikací v různých oblastech.

Klonování aplikací se podporuje pro tyto plány služby App Service: Standard, Premium, Premium V2 a V izolovaném prostředí. Nová funkce používá stejná omezení jako funkce zálohování App Service, viz Zálohování aplikace v Azure App Service.

Klonování existující aplikace

Scénář: Existující aplikace v oblasti USA – středojiž a chcete naklonovat obsah do nové aplikace v oblasti USA – středosever. Můžete to udělat pomocí azure Resource Manager verze rutiny PowerShellu a vytvořit novou aplikaci s -SourceWebApp možností .

Když znáte název skupiny prostředků, která obsahuje zdrojovou aplikaci, můžete k získání informací o zdrojové aplikaci použít následující příkaz PowerShellu (v tomto případě s názvem source-webapp):

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

K vytvoření nového plánu App Service můžete použít New-AzAppServicePlan příkaz jako v následujícím příkladu.

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

New-AzWebApp Pomocí příkazu můžete vytvořit novou aplikaci v oblasti USA – středosever a spojit ji s existujícím plánem App Service. Kromě toho můžete použít stejnou skupinu prostředků jako zdrojová aplikace nebo definovat novou skupinu prostředků, jak je znázorněno v následujícím příkazu:

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

Pokud chcete naklonovat existující aplikaci včetně všech přidružených slotů nasazení, musíte použít IncludeSourceWebAppSlots parametr . Všimněte si IncludeSourceWebAppSlots , že parametr se podporuje pouze pro klonování celé aplikace včetně všech jejích slotů. Následující příkaz PowerShellu ukazuje použití tohoto parametru s příkazem New-AzWebApp :

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

Pokud chcete naklonovat existující aplikaci ve stejné oblasti, musíte vytvořit novou skupinu prostředků a nový plán služby App Service ve stejné oblasti a pak pomocí následujícího příkazu PowerShellu naklonovat aplikaci:

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

Klonování existující aplikace do App Service Environment

Scénář: Existující aplikace v oblasti USA – středo jih a chcete naklonovat obsah do nové aplikace do existující App Service Environment (ASE).

Když znáte název skupiny prostředků, která obsahuje zdrojovou aplikaci, můžete k získání informací o zdrojové aplikaci použít následující příkaz PowerShellu (v tomto případě s názvem source-webapp):

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

Když znáte název služby ASE a název skupiny prostředků, do které ase patří, můžete vytvořit novou aplikaci v existující službě ASE, jak je znázorněno v následujícím příkazu:

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

Parametr Location je povinný z důvodu starší verze, ale při vytváření aplikace ve službě ASE se ignoruje.

Klonování existujícího slotu aplikace

Scénář: Chcete naklonovat existující slot nasazení aplikace do nové aplikace nebo do nového slotu. Nová aplikace může být ve stejné oblasti jako původní slot aplikace nebo v jiné oblasti.

Když znáte název skupiny prostředků, která obsahuje zdrojovou aplikaci, můžete pomocí následujícího příkazu PowerShellu získat informace o slotu zdrojové aplikace (v tomto případě s názvem source-appslot) spojené s source-app:

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

Následující příkaz ukazuje vytvoření klonu zdrojové aplikace do nové aplikace:

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

Konfigurace Traffic Manageru při klonování aplikace

Vytváření aplikací ve více oblastech a konfigurace služby Azure Traffic Manager pro směrování provozu do všech těchto aplikací je důležitým scénářem, který zajistí vysokou dostupnost aplikací zákazníků. Při klonování existující aplikace máte možnost připojit obě aplikace k novému nebo existujícímu profilu Traffic Manageru. Podporuje se pouze Azure Resource Manager verze Traffic Manageru.

Vytvoření nového profilu Traffic Manageru při klonování aplikace

Scénář: Při konfiguraci profilu Azure Resource Manager Traffic Manageru, který zahrnuje obě aplikace, chcete naklonovat aplikaci do jiné oblasti. Následující příkaz ukazuje vytvoření klonu zdrojové aplikace do nové aplikace při konfiguraci nového profilu Traffic Manageru:

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

Přidání nové klonované aplikace do existujícího profilu Traffic Manageru

Scénář: Už máte profil Služby Azure Resource Manager Traffic Manageru a chcete přidat obě aplikace jako koncové body. Uděláte to tak, že nejprve sestavíte ID existujícího profilu Traffic Manageru. Potřebujete ID předplatného, název skupiny prostředků a název existujícího profilu Traffic Manageru.

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

Následující příkaz po získání ID správce provozu ukazuje vytvoření klonu zdrojové aplikace do nové aplikace a jeho přidání do existujícího profilu Traffic Manageru:

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

Poznámka

Pokud se vám zobrazuje chyba oznamující, že ověřování SSL u názvu hostitele Traffic Manageru selhává, doporučujeme při provádění operace klonování použít atribut -IgnoreCustomHostNames v rutině PowerShellu nebo použít portál.

Aktuální omezení

Tady jsou známá omezení klonování aplikací:

  • Nastavení automatického škálování se neklonují.
  • Nastavení plánu zálohování se neklonují.
  • Nastavení virtuální sítě se neklonují.
  • V cílové aplikaci se automaticky nenastavuje služby App Insights.
  • Nastavení jednoduchého ověřování se neklonují.
  • Rozšíření Kudu se neklonují.
  • Pravidla TiP se neklonují.
  • Obsah databáze se neklonuje.
  • Změny odchozích IP adres při klonování do jiné jednotky škálování.
  • Není k dispozici pro linuxové aplikace.
  • Spravované identity se neklonují.
  • Není k dispozici pro aplikace funkcí.

Reference