Clonagem de aplicativo do Serviço de Aplicativo do Azure usando o PowerShell
Nota
Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.
Com o lançamento do Microsoft Azure PowerShell versão 1.1.0, foi adicionada uma nova opção que New-AzWebApp
permite clonar um aplicativo do Serviço de Aplicativo existente para um aplicativo recém-criado em uma região diferente ou na mesma região. Essa opção permite que os clientes implantem vários aplicativos em diferentes regiões de forma rápida e fácil.
A clonagem de aplicações é suportada nos planos do Serviço de Aplicações Standard, Premium, Premium V2 e Isolado. O novo recurso usa as mesmas limitações do recurso Backup do Serviço de Aplicativo, consulte Fazer backup de um aplicativo no Serviço de Aplicativo do Azure.
Clonando um aplicativo existente
Cenário: Um aplicativo existente na região Centro-Sul dos EUA e você deseja clonar o conteúdo para um novo aplicativo na região Centro-Norte dos EUA. Isso pode ser feito usando a versão do Azure Resource Manager do cmdlet do PowerShell para criar um novo aplicativo com a -SourceWebApp
opção.
Sabendo o nome do grupo de recursos que contém o aplicativo de origem, você pode usar o seguinte comando do PowerShell para obter as informações do aplicativo de origem (neste caso, chamado source-webapp
):
$srcapp = Get-AzWebApp -ResourceGroupName SourceAzureResourceGroup -Name source-webapp
Para criar um novo Plano do Serviço de Aplicativo, você pode usar New-AzAppServicePlan
o comando como no exemplo a seguir
New-AzAppServicePlan -Location "North Central US" -ResourceGroupName DestinationAzureResourceGroup -Name DestinationAppServicePlan -Tier Standard
Usando o New-AzWebApp
comando, você pode criar o novo aplicativo na região Centro-Norte dos EUA e vinculá-lo a um Plano de Serviço de Aplicativo existente. Além disso, você pode usar o mesmo grupo de recursos que o aplicativo de origem ou definir um novo grupo de recursos, conforme mostrado no comando a seguir:
$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "North Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp
Para clonar um aplicativo existente, incluindo todos os slots de implantação associados, você precisa usar o IncludeSourceWebAppSlots
parâmetro. Observe que o IncludeSourceWebAppSlots
parâmetro só é suportado para clonar um aplicativo inteiro, incluindo todos os seus slots. O comando PowerShell a seguir demonstra o uso desse parâmetro com o New-AzWebApp
comando:
$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "North Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp -IncludeSourceWebAppSlots
Para clonar um aplicativo existente na mesma região, você precisa criar um novo grupo de recursos e um novo plano de serviço de aplicativo na mesma região e, em seguida, usar o seguinte comando do PowerShell para clonar o aplicativo:
$destapp = New-AzWebApp -ResourceGroupName NewAzureResourceGroup -Name dest-webapp -Location "South Central US" -AppServicePlan NewAppServicePlan -SourceWebApp $srcapp
Clonando um aplicativo existente em um ambiente do Serviço de Aplicativo
Cenário: um aplicativo existente na região Centro-Sul dos EUA e você deseja clonar o conteúdo para um novo aplicativo para um ambiente de serviço de aplicativo (ASE) existente.
Sabendo o nome do grupo de recursos que contém o aplicativo de origem, você pode usar o seguinte comando do PowerShell para obter as informações do aplicativo de origem (neste caso, chamado source-webapp
):
$srcapp = Get-AzWebApp -ResourceGroupName SourceAzureResourceGroup -Name source-webapp
Sabendo o nome do ASE e o nome do grupo de recursos ao qual o ASE pertence, você pode criar o novo aplicativo no ASE existente, conforme mostrado no comando a seguir:
$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "North Central US" -AppServicePlan DestinationAppServicePlan -ASEName DestinationASE -ASEResourceGroupName DestinationASEResourceGroupName -SourceWebApp $srcapp
O Location
parâmetro é necessário devido ao motivo herdado, mas é ignorado quando você cria o aplicativo em um ASE.
Clonando um slot de aplicativo existente
Cenário: você deseja clonar um slot de implantação existente de um aplicativo para um novo aplicativo ou um novo slot. O novo aplicativo pode estar na mesma região do slot de aplicativo original ou em uma região diferente.
Sabendo o nome do grupo de recursos que contém o aplicativo de origem, você pode usar o seguinte comando do PowerShell para obter as informações do slot do aplicativo de origem (neste caso, chamado source-appslot
) vinculadas a source-app
:
$srcappslot = Get-AzWebAppSlot -ResourceGroupName SourceAzureResourceGroup -Name source-app -Slot source-appslot
O comando a seguir demonstra a criação de um clone do aplicativo de origem para um novo aplicativo:
$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-app -Location "North Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcappslot
Configurando o Gerenciador de Tráfego ao clonar um aplicativo
Criar aplicativos de várias regiões e configurar o Gerenciador de Tráfego do Azure para rotear o tráfego para todos esses aplicativos é um cenário importante para garantir que os aplicativos dos clientes estejam altamente disponíveis. Ao clonar um aplicativo existente, você tem a opção de conectar ambos os aplicativos a um novo perfil de gerenciador de tráfego ou a um perfil existente. Apenas a versão do Azure Resource Manager do Traffic Manager é suportada.
Criando um novo perfil do Gerenciador de Tráfego ao clonar um aplicativo
Cenário: você deseja clonar um aplicativo para outra região, enquanto configura um perfil de gerenciador de tráfego do Azure Resource Manager que inclui ambos os aplicativos. O comando a seguir demonstra a criação de um clone do aplicativo de origem para um novo aplicativo ao configurar um novo perfil do Gerenciador de Tráfego:
$destapp = New-AzWebApp -ResourceGroupName DestinationAzureResourceGroup -Name dest-webapp -Location "South Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp -TrafficManagerProfileName newTrafficManagerProfile
Adicionar novo aplicativo clonado a um perfil existente do Gerenciador de Tráfego
Cenário: você já tem um perfil de gerenciador de tráfego do Azure Resource Manager e deseja adicionar ambos os aplicativos como pontos de extremidade. Para fazer isso, primeiro você precisa montar o ID de perfil do gerenciador de tráfego existente. Você precisa da ID da assinatura, do nome do grupo de recursos e do nome do perfil do gerenciador de tráfego existente.
$TMProfileID = "/subscriptions/<Your subscription ID goes here>/resourceGroups/<Your resource group name goes here>/providers/Microsoft.TrafficManagerProfiles/ExistingTrafficManagerProfileName"
Depois de ter o ID da manjedoura de tráfego, o comando a seguir demonstra a criação de um clone do aplicativo de origem para um novo aplicativo enquanto os adiciona a um perfil existente do Gerenciador de Tráfego:
$destapp = New-AzWebApp -ResourceGroupName <Resource group name> -Name dest-webapp -Location "South Central US" -AppServicePlan DestinationAppServicePlan -SourceWebApp $srcapp -TrafficManagerProfileId $TMProfileID
Nota
Se você estiver recebendo um erro informando "A validação SSL no nome do host do gerenciador de tráfego está falhando", sugerimos que você use o atributo -IgnoreCustomHostNames no cmdlet powershell ao executar a operação de clone ou use o portal.
Restrições atuais
Veja a seguir as restrições conhecidas da clonagem de aplicações:
- As definições de dimensionamento automático não são clonadas
- As definições de agendamento de cópias definição não são clonadas
- As definições da VNET não são clonadas
- As Informações da Aplicação não são automaticamente configuradas na aplicação de destino
- As configurações Easy Auth não são clonadas
- A Extensão do Kudu não é clonada
- As regras do TiP não são clonadas
- O conteúdo da base de dados não é clonado
- Os Endereços IP de Saída são alterados quando a clonagem é realizada para uma unidade de escala diferente
- Não disponível para Aplicações Linux
- As identidades geridas não são clonadas
- Não disponível para as Aplicações de Funções