Serviço de Aplicações do Azure Clonagem de Aplicações com o PowerShell

Nota

Recomendamos que utilize o módulo do Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. 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 lhe permite clonar uma aplicação de Serviço de Aplicações existente para uma aplicação recentemente criada numa região diferente ou na mesma região. Esta opção permite que os clientes implementem várias aplicações 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. A nova funcionalidade utiliza as mesmas limitações que Serviço de Aplicações funcionalidade cópia de segurança. Veja Criar cópias de segurança de uma aplicação no Serviço de Aplicações do Azure.

Clonar uma aplicação existente

Cenário: uma aplicação existente na região E.U.A. Centro-Sul e quer clonar os conteúdos para uma nova aplicação na região E.U.A. Centro-Norte. Pode fazê-lo com a versão do Azure Resource Manager do cmdlet do PowerShell para criar uma nova aplicação com a opção -SourceWebApp .

Conhecendo o nome do grupo de recursos que contém a aplicação de origem, pode utilizar o seguinte comando do PowerShell para obter as informações da aplicação de origem (neste caso, com o nome source-webapp):

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

Para criar um novo Plano de Serviço de Aplicações, pode utilizar New-AzAppServicePlan o comando como no exemplo seguinte

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

Com o New-AzWebApp comando, pode criar a nova aplicação na região E.U.A. Centro-Norte e ligá-la a um Plano de Serviço de Aplicações existente. Além disso, pode utilizar o mesmo grupo de recursos que a aplicação de origem ou definir um novo grupo de recursos, conforme mostrado no seguinte comando:

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

Para clonar uma aplicação existente, incluindo todos os blocos de implementação associados, tem de utilizar o IncludeSourceWebAppSlots parâmetro. Tenha em atenção que o IncludeSourceWebAppSlots parâmetro só é suportado para clonar uma aplicação inteira, incluindo todos os respetivos blocos. O seguinte comando do PowerShell demonstra a utilização 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 uma aplicação existente na mesma região, tem de criar um novo grupo de recursos e um novo plano do serviço de aplicações na mesma região e, em seguida, utilizar o seguinte comando do PowerShell para clonar a aplicação:

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

Clonar uma Aplicação existente para um Ambiente do Serviço de Aplicações

Cenário: uma aplicação existente na região E.U.A. Centro-Sul e quer clonar os conteúdos para uma nova aplicação para uma Ambiente do Serviço de Aplicações (ASE) existente.

Conhecendo o nome do grupo de recursos que contém a aplicação de origem, pode utilizar o seguinte comando do PowerShell para obter as informações da aplicação de origem (neste caso, com o nome source-webapp):

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

Sabendo o nome do ASE e o nome do grupo de recursos a que o ASE pertence, pode criar a nova aplicação no ASE existente, conforme mostrado no seguinte comando:

$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 a um motivo legado, mas é ignorado quando cria a aplicação num ASE.

Clonar um Bloco de Aplicações existente

Cenário: quer clonar um bloco de implementação existente de uma aplicação para uma nova aplicação ou para um novo bloco. A nova aplicação pode estar na mesma região que o bloco de aplicações original ou numa região diferente.

Conhecendo o nome do grupo de recursos que contém a aplicação de origem, pode utilizar o seguinte comando do PowerShell para obter as informações do bloco da aplicação de origem (neste caso, denominado source-appslot) associadas a source-app:

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

O seguinte comando demonstra a criação de um clone da aplicação de origem para uma nova aplicação:

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

Configurar o Gestor de Tráfego ao clonar uma aplicação

Criar aplicações de várias regiões e configurar o Gestor de Tráfego do Azure para encaminhar o tráfego para todas estas aplicações é um cenário importante para garantir que as aplicações dos clientes estão altamente disponíveis. Ao clonar uma aplicação existente, tem a opção de ligar ambas as aplicações a um novo perfil do gestor de tráfego ou a uma existente. Só é suportada a versão Resource Manager do Gestor de Tráfego do Azure.

Criar um novo perfil do Gestor de Tráfego ao clonar uma aplicação

Cenário: quer clonar uma aplicação para outra região, ao mesmo tempo que configura um perfil do gestor de tráfego do Azure Resource Manager que inclui ambas as aplicações. O comando seguinte demonstra a criação de um clone da aplicação de origem para uma nova aplicação ao configurar um novo perfil do Gestor de Tráfego:

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

Adicionar uma nova aplicação clonada a um perfil existente do Gestor de Tráfego

Cenário: já tem um perfil do gestor de tráfego do Azure Resource Manager e quer adicionar ambas as aplicações como pontos finais. Para tal, primeiro tem de montar o ID de perfil do gestor de tráfego existente. Precisa do ID da subscrição, do nome do grupo de recursos e do nome do perfil do gestor 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 seguinte comando demonstra a criação de um clone da aplicação de origem para uma nova aplicação ao adicioná-los a um perfil existente do Gestor 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 estiver a receber um erro que indica "A validação SSL no nome do anfitrião do gestor de tráfego está a falhar", sugerimos que utilize o atributo -IgnoreCustomHostNames no cmdlet do Powershell durante a execução da operação de clonagem ou utilize 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

Referências