Clonagem de aplicativo do Serviço de Aplicativo do Azure usando o Azure PowerShellAzure App Service App Cloning Using PowerShell

Observação

Este artigo foi atualizado para usar o novo módulo Az do Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Você ainda pode usar o módulo AzureRM, que continuará a receber as correções de bugs até pelo menos dezembro de 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Para saber mais sobre o novo módulo Az e a compatibilidade com o AzureRM, confira Apresentação do novo módulo Az do Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Para obter instruções de instalação do módulo Az, confira Instalar o Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

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.With the release of Microsoft Azure PowerShell version 1.1.0, a new option has been added to New-AzWebApp that lets you clone an existing App Service app to a newly created app in a different region or in the same region. Essa opção permitirá que os clientes implantem vários aplicativos em diferentes regiões de forma rápida e fácil.This option enables customers to deploy a number of apps across different regions quickly and easily.

A clonagem de aplicativo tem suporte para planos de serviço de aplicativo padrão, Premium, Premium V2 e isolados.App cloning is supported for Standard, Premium, Premium V2, and Isolated app service plans. 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.The new feature uses the same limitations as App Service Backup feature, see Back up an app in Azure App Service.

Clonagem de um aplicativo existenteCloning an existing app

Cenário: um aplicativo existente na região do Sul EUA Central e você deseja clonar o conteúdo para um novo aplicativo na região do Norte EUA Central.Scenario: An existing app in South Central US region, and you want to clone the contents to a new app in North Central US region. 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.It can be accomplished by using the Azure Resource Manager version of the PowerShell cmdlet to create a new app with the -SourceWebApp option.

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):Knowing the resource group name that contains the source app, you can use the following PowerShell command to get the source app's information (in this case named 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 seguirTo create a new App Service Plan, you can use New-AzAppServicePlan command as in the following example

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 do norte EUA Central e associá-lo a um plano do serviço de aplicativo existente.Using the New-AzWebApp command, you can create the new app in the North Central US region, and tie it to an existing App Service Plan. 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:Moreover, you can use the same resource group as the source app, or define a new resource group, as shown in the following command:

$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.To clone an existing app including all associated deployment slots, you need to use the IncludeSourceWebAppSlots parameter. Observe que o IncludeSourceWebAppSlots parâmetro só tem suporte para clonagem de um aplicativo inteiro, incluindo todos os seus slots.Note that the IncludeSourceWebAppSlots parameter is only supported for cloning an entire app including all of its slots. O comando do PowerShell a seguir demonstra o uso desse parâmetro com o comando New-AzWebApp:The following PowerShell command demonstrates the use of that parameter with the New-AzWebApp command:

$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:To clone an existing app within the same region, you need to create a new resource group and a new app service plan in the same region, and then use the following PowerShell command to clone the app:

$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 AplicativoCloning an existing App to an App Service Environment

Cenário: um aplicativo existente na região do Sul EUA Central e você deseja clonar o conteúdo para um novo aplicativo em um Ambiente do Serviço de Aplicativo (ASE) existente.Scenario: An existing app in South Central US region, and you want to clone the contents to a new app to an existing App Service Environment (ASE).

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):Knowing the resource group name that contains the source app, you can use the following PowerShell command to get the source app's information (in this case named 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:Knowing the ASE's name, and the resource group name that the ASE belongs to, you can create the new app in the existing ASE, as shown in the following command:

$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.The Location parameter is required due to legacy reason, but it is ignored when you create the app in an ASE.

Clonagem de um slot de aplicativo existenteCloning an existing App Slot

Cenário: você deseja clonar um slot de implantação existente de um aplicativo para um novo aplicativo ou um novo slot.Scenario: You want to clone an existing deployment slot of an app to either a new app or a new slot. O novo aplicativo pode estar na mesma região que o slot original do aplicativo ou em uma região diferente.The new app can be in the same region as the original app slot or in a different region.

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:Knowing the resource group name that contains the source app, you can use the following PowerShell command to get the source app slot's information (in this case named source-appslot) tied to 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:The following command demonstrates creating a clone of the source app to a new app:

$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 aplicativoConfiguring Traffic Manager while cloning an app

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.Creating multi-region apps and configuring Azure Traffic Manager to route traffic to all these apps, is an important scenario to ensure that customers' apps are highly available. 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.When cloning an existing app, you have the option to connect both apps to either a new traffic manager profile or an existing one. Somente a versão do Azure Resource Manager de gerenciador de tráfego recebe suporte.Only Azure Resource Manager version of Traffic Manager is supported.

Criando um novo perfil do Gerenciador de Tráfego durante a clonagem de um aplicativoCreating a new Traffic Manager profile while cloning an app

Cenário: você deseja clonar um aplicativo para outra região, enquanto configura um Azure Resource Manager perfil do Gerenciador de tráfego que inclui ambos os aplicativos.Scenario: You want to clone an app to another region, while configuring an Azure Resource Manager traffic manager profile that includes both apps. 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:The following command demonstrates creating a clone of the source app to a new app while configuring a new Traffic Manager profile:

$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áfegoAdding new cloned app to an existing Traffic Manager profile

Cenário: você já tem um Azure Resource Manager perfil do Gerenciador de tráfego e deseja adicionar ambos os aplicativos como pontos de extremidade.Scenario: You already have an Azure Resource Manager traffic manager profile and want to add both apps as endpoints. Para fazer isso, primeiro é necessário montar o ID existente de perfil do gerenciador de tráfego.To do so, you first need to assemble the existing traffic manager profile ID. É necessário a ID de assinatura, o nome do grupo de recursos e o nome de perfil do gerenciador de tráfego existente.You need the subscription ID, the resource group name, and the existing traffic manager profile name.

$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:After having the traffic manger ID, the following command demonstrates creating a clone of the source app to a new app while adding them to an existing Traffic Manager profile:

$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 afirmando: "a validação SSL no nome do host do Gerenciador de tráfego está falhando", sugerimos que você use o atributo-IgnoreCustomHostNames no cmdlet do PowerShell durante a execução da operação de clonagem ou, caso contrário, use o Portal.If you are receiving an error that states, "SSL validation on the traffic manager hostname is failing" then we suggest you use -IgnoreCustomHostNames attribute in the powershell cmdlet while performing the clone operation or else use the portal.

Restrições atuaisCurrent Restrictions

Estas são as restrições conhecidas da clonagem de aplicativos:Here are the known restrictions of app cloning:

  • As configurações de escala automática não são clonadasAuto scale settings are not cloned
  • As configurações de agendamento de backup não são clonadas.Backup schedule settings are not cloned
  • As configurações da rede virtual não são clonadasVNET settings are not cloned
  • O Application Insights não está automaticamente configurado no aplicativo de destinoApp Insights are not automatically set up on the destination app
  • As configurações de Autenticação Fácil não são clonadasEasy Auth settings are not cloned
  • A extensão Kudu não é clonadaKudu Extension are not cloned
  • As regras de TiP não são clonadasTiP rules are not cloned
  • O conteúdo do banco de dados não é clonadoDatabase content is not cloned
  • Os endereços IP de saída são alterados em caso de clonagem para uma unidade de escala diferenteOutbound IP Addresses changes if cloning to a different scale unit
  • Não disponível para aplicativos do LinuxNot available for Linux Apps

ReferênciasReferences