Sdílet prostřednictvím


Klonování aplikací služby Aplikace Azure Pomocí PowerShellu

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Pokud chcete začít, přečtěte si 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.

Ve verzi Microsoft Azure PowerShellu verze 1.1.0 byla přidána nová možnost, která umožňuje naklonovat New-AzWebApp existující aplikaci App Service 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í služby App Service, viz Zálohování aplikace ve službě Aplikace Azure Service.

Klonování existující aplikace

Scénář: Existující aplikace v oblasti USA – středojižní a chcete obsah naklonovat do nové aplikace v oblasti USA – středosever. Můžete toho dosáhnout pomocí verze Azure Resource Manageru rutiny PowerShellu k vytvoření nové aplikace s -SourceWebApp možností.

Znalost názvu skupiny prostředků, která obsahuje zdrojovou aplikaci, můžete pomocí následujícího příkazu PowerShellu získat informace o zdrojové aplikaci (v tomto případě pojmenované source-webapp):

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

Pokud chcete vytvořit nový plán služby 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 svázat ji s existujícím plánem služby App Service. Kromě toho můžete použít stejnou skupinu prostředků jako zdrojovou aplikaci 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, že IncludeSourceWebAppSlots parametr je podporován pouze pro klonování celé aplikace včetně všech jeho 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 služby App Service Environment

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

Znalost názvu skupiny prostředků, která obsahuje zdrojovou aplikaci, můžete pomocí následujícího příkazu PowerShellu získat informace o zdrojové aplikaci (v tomto případě pojmenované source-webapp):

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

Znalost názvu služby ASE a názvu skupiny prostředků, do které služba 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 se vyžaduje z důvodu starší verze, ale při vytváření aplikace v ASE se ignoruje.

Klonování existujícího slotu aplikace

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

Znalost názvu 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ě pojmenovaném source-appslot) svázané 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í pro více oblastí a konfigurace Azure Traffic Manageru 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 profilu Traffic Manageru nebo k existující aplikaci. Podporuje se jenom verze Traffic Manageru Azure Resource Manageru.

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

Scénář: Chcete naklonovat aplikaci do jiné oblasti a současně nakonfigurovat profil Traffic Manageru Azure Resource Manageru, který zahrnuje obě aplikace. 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 Traffic Manageru Azure Resource Manageru a chcete přidat obě aplikace jako koncové body. Abyste to mohli udělat, musíte nejprve sestavit existující ID 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"

Po zadání ID registru provozu následující příkaz ukazuje vytvoření klonu zdrojové aplikace do nové aplikace při jejich 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 zobrazí chyba oznamující, že ověření SSL u názvu hostitele Traffic Manageru selhává, doporučujeme použít atribut -IgnoreCustomHostNames v rutině PowerShellu při provádění operace klonování 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