Condividi tramite


Clonare un'app del servizio app di Azure usando PowerShell

Annotazioni

È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

Questo articolo illustra come clonare un'app del servizio app esistente per creare una nuova app in un'area diversa o nella stessa area. È possibile distribuire più app in aree diverse in modo rapido e semplice.

La clonazione delle app è supportata nei livelli Standard e versioni successive e nei livelli isolati. La funzionalità presenta le stesse limitazioni della funzionalità Backup del servizio app, vedere Eseguire il backup di un'app nel servizio app di Azure.

Clonare un'app esistente

Scenario: si vuole clonare il contenuto di un'app esistente nell'area Stati Uniti centro-meridionali in una nuova app nell'area Stati Uniti centro-settentrionali. È possibile usare la versione di Azure Resource Manager del cmdlet di PowerShell per creare una nuova app usando l'opzione -SourceWebApp .

Quando si conosce il nome del gruppo di risorse che contiene l'app di origine, è possibile usare il comando di PowerShell seguente per ottenere le informazioni dell'app di origine, in questo caso denominato source-webapp:

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

Per creare un nuovo piano di servizio app, è possibile usare il New-AzAppServicePlan comando illustrato nell'esempio seguente:

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

Usando il New-AzWebApp comando è possibile creare la nuova app nell'area Stati Uniti centro-settentrionali e collegarla a un piano di servizio app esistente. Inoltre, è possibile usare lo stesso gruppo di risorse dell'app di origine o definire un nuovo gruppo di risorse. Vedere il comando seguente:

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

Per clonare un'app esistente, inclusi tutti gli slot di distribuzione associati, è necessario usare il IncludeSourceWebAppSlots parametro . Questo parametro è supportato solo per la clonazione di un'intera app, inclusi tutti i relativi slot. Il comando di PowerShell seguente illustra l'uso di tale parametro con il New-AzWebApp comando :

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

Per clonare un'app esistente all'interno della stessa area, creare un nuovo gruppo di risorse e un nuovo piano di servizio app nella stessa area. Usare quindi il comando di PowerShell seguente per clonare l'app:

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

Clonare un'app esistente in un Ambiente di Servizio App

Scenario: si vuole clonare il contenuto di un'app esistente nell'area Stati Uniti centro-meridionali in una nuova app in un ambiente del servizio app esistente.

Quando si conosce il nome del gruppo di risorse che contiene l'app di origine, è possibile usare il comando di PowerShell seguente per ottenere le informazioni dell'app di origine, in questo caso denominato source-webapp:

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

Con il nome dell'ambiente del servizio app e il nome del gruppo di risorse a cui appartiene l'ambiente del servizio app, è possibile creare la nuova app nell'ambiente del servizio app esistente. Il processo è illustrato nel comando seguente:

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

Il Location parametro è necessario per motivi legacy, ma viene ignorato quando si crea l'app in un ambiente del servizio app.

Clonare uno slot app esistente

Scenario: si vuole clonare uno slot di distribuzione esistente di un'app in una nuova app o in un nuovo slot. La nuova app può trovarsi nella stessa area dello slot dell'app originale o in un'area diversa.

Quando conosci il nome del gruppo di risorse che contiene l'app di origine, puoi usare il seguente comando PowerShell per ottenere le informazioni sullo slot dell'app di origine (in questo caso denominato source-appslot) associato a source-app:

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

Il comando seguente illustra come creare un clone dell'app di origine in una nuova app:

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

Configura Gestione Traffico durante la clonazione di un'app

Quando si creano applicazioni multi-regione e si configura Azure Traffic Manager per instradare il traffico verso queste applicazioni, è consigliabile che le applicazioni dei clienti siano altamente disponibili. Quando si clona un'app esistente, è possibile connettere entrambe le app a un nuovo profilo di Gestione traffico o a uno esistente. È supportata solo la versione di Gestione traffico di Azure Resource Manager.

Creare un nuovo profilo di Gestione traffico durante la clonazione di un'app

Scenario: si vuole clonare un'app in un'altra area, configurando un profilo di Gestione traffico di Azure Resource Manager che include entrambe le app. Il comando seguente illustra come creare un clone dell'app di origine in una nuova app durante la configurazione di un nuovo profilo di Gestione traffico:

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

Aggiungere una nuova app clonata a un profilo di Gestione traffico esistente

Scenario: si ha già un profilo di Gestione traffico di Azure Resource Manager e si vogliono aggiungere entrambe le app come endpoint. Prima di tutto, assemblare l'ID del profilo di Gestione traffico esistente. Sono necessari l'ID di sottoscrizione, il nome del gruppo di risorse e il nome del profilo di Gestione traffico esistente.

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

Dopo aver ottenuto l'ID di Gestione traffico, il comando seguente illustra come creare un clone dell'app di origine in una nuova app durante l'aggiunta a un profilo di Gestione traffico esistente:

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

Annotazioni

Se viene visualizzato un errore che indica che la convalida SSL nel nome host di Gestione traffico ha esito negativo, è consigliabile usare l'attributo -IgnoreCustomHostNames nel cmdlet di PowerShell durante l'esecuzione dell'operazione di clonazione. In alternativa, è possibile usare il portale di Azure.

Restrizioni correnti

Di seguito sono riportate le limitazioni note della funzionalità di clonazione delle app:

  • Le impostazioni di scalabilità automatica non vengono clonate.
  • Le impostazioni della pianificazione del backup non vengono clonate.
  • Application Insights non viene configurato automaticamente nell'app di destinazione.
  • Le impostazioni di autenticazione semplificata non vengono clonate.
  • Le estensioni Kudu non vengono clonate.
  • Le regole TiP non vengono clonate.
  • Il contenuto del database non viene clonato.
  • Gli indirizzi IP in uscita cambiano se si clona in un'unità di scala diversa.
  • Le app Linux non sono disponibili.
  • Le identità gestite non vengono clonate.
  • Le app per le funzioni non sono disponibili.