Clonagem de aplicativo do Serviço de Aplicativo do Azure usando o Azure PowerShell

Observação

Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Confira Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

Com o lançamento do Microsoft Azure PowerShell versão 1.1.0, uma nova opção foi adicionada ao New-AzWebApp que lhe permite clonar um aplicativo de Serviço existente como um aplicativo recém-criado em uma região diferente ou na mesma região. Essa opção permitirá que os clientes implantem vários aplicativos em diferentes regiões de forma rápida e fácil.

A clonagem de aplicativo tem suporte para planos de serviço de aplicativo padrão, Premium, Premium V2 e Isolado. O novo recurso usa as mesmas limitações que o recurso de Backup de Serviço de Aplicativo; veja Fazer backup de um aplicativo no Serviço de Aplicativo do Azure.

Clonagem de um aplicativo existente

Cenário: um aplicativo existente na região Centro-Sul dos EUA que você quer clonar o conteúdo em um novo aplicativo na região Centro-Norte dos EUA. Isso pode ser feito usando a versão do cmdlet do PowerShell do Azure Resource Manager para criar um novo aplicativo com a opção -SourceWebApp.

Se soubermos o nome do grupo de recursos que contém o aplicativo de origem, poderemos usar o seguinte comando do PowerShell para obter as informações do aplicativo de origem (nesse caso, o nome é source-webapp):

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

Para criar um novo plano do Serviço de Aplicativo, podemos usar comando New-AzAppServicePlan como no exemplo a seguir

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

Usando o comando New-AzWebApp, você pode criar o aplicativo na região Centro-Norte dos EUA e associá-lo a um plano de serviço de aplicativo. Além disso, você pode usar o mesmo grupo de recursos do aplicativo de origem ou definir um novo grupo de recursos, como 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 parâmetro IncludeSourceWebAppSlots. Observe que o parâmetro IncludeSourceWebAppSlots só tem suporte para clonagem de um aplicativo inteiro, incluindo todos os slots. O comando do PowerShell a seguir demonstra o uso desse parâmetro com o comando New-AzWebApp:

$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 do serviço de aplicativo na mesma região e usar o comando do PowerShell a seguir para clonar o aplicativo:

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

Clonagem de um aplicativo existente como um Ambiente do Serviço de Aplicativo

Cenário: um aplicativo na região Centro-Sul dos EUA que você quer clonar o conteúdo em um novo aplicativo para um ASE (Ambiente do Serviço de Aplicativo) existente.

Se soubermos o nome do grupo de recursos que contém o aplicativo de origem, poderemos usar o seguinte comando do PowerShell para obter as informações do aplicativo de origem (nesse caso, o nome é 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 parâmetro Location é necessário devido ao legado, mas é ignorado quando você criar o aplicativo em um ASE.

Clonagem de 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 que o slot original do aplicativo ou em uma região diferente.

Se soubermos o nome do grupo de recursos que contém o aplicativo de origem, poderemos usar o seguinte comando do PowerShell para obter as informações do slot do aplicativo de origem (nesse caso, o nome source-appslot) está vinculado a source-app:

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

O comando a seguir demonstra como criar um clone do aplicativo de origem como um novo aplicativo:

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

Configuração do Gerenciador de Tráfego durante a clonagem de um aplicativo

Criar aplicativos de várias regiões e configurar o Azure Traffic Manager para rotear o tráfego para todos esses aplicativos é um cenário importante para garantir que os aplicativos de clientes sejam altamente disponíveis. Ao clonar um aplicativo existente, você tem a opção de conectar ambos os aplicativos a um perfil novo ou existente do gerenciador de tráfego. Somente a versão do Azure Resource Manager de gerenciador de tráfego recebe suporte.

Criando um novo perfil do Gerenciador de Tráfego durante a clonagem de um aplicativo

Cenário: você deseja clonar um aplicativo em outra região enquanto configura um perfil do Gerenciador de tráfego do Azure Resource Manager que inclui ambos os aplicativos. O comando a seguir demonstra como criar um clone do aplicativo de origem como 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

Adicionando novos aplicativos clonados a um perfil existente do Gerenciador de Tráfego

Cenário: você já tem um perfil do gerenciador de tráfego do Azure Resource Manager ao qual deseje adicionar ambos os aplicativos como pontos de extremidade. Para fazer isso, primeiro é necessário montar o ID existente de perfil do gerenciador de tráfego. É necessário a ID de assinatura, o nome do grupo de recursos e o nome de 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 obter a ID do gerenciador de tráfego, o comando a seguir demonstra como criar um clone do aplicativo de origem como um novo aplicativo enquanto eles são adicionados 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

Observação

Se você estiver recebendo um erro dizendo que "a validação SSL no nome do host do Gerenciador de Tráfego está falhando", sugerimos usar o atributo -IgnoreCustomHostNames no cmdlet do PowerShell durante a execução da operação de clonagem ou usar o portal.

Restrições atuais

Estas são as restrições conhecidas da clonagem de aplicativos:

  • As configurações de escala automática não são clonadas
  • As configurações de agendamento de backup não são clonadas.
  • As configurações da rede virtual não são clonadas
  • O Application Insights não está automaticamente configurado no aplicativo de destino
  • As configurações de Autenticação Fácil não são clonadas
  • A extensão Kudu não é clonada
  • As regras de TiP não são clonadas
  • O conteúdo do banco de dados não é clonado
  • Os endereços IP de saída são alterados em caso de clonagem para uma unidade de escala diferente
  • Não disponível para aplicativos do Linux
  • Identidades gerenciadas não são clonadas
  • Não disponível para aplicativos de funções

Referências