Mover recursos para um novo grupo de recursos ou uma nova assinaturaMove resources to a new resource group or subscription

Este artigo mostra como mover recursos do Azure para outra assinatura do Azure ou outro grupo de recursos na mesma assinatura.This article shows you how to move Azure resources to either another Azure subscription or another resource group under the same subscription. Você pode usar o portal do Azure, Azure PowerShell, CLI do Azure ou a API REST para mover recursos.You can use the Azure portal, Azure PowerShell, Azure CLI, or the REST API to move resources.

O grupo de origem e o grupo de destino ficam bloqueados durante a operação de movimentação.Both the source group and the target group are locked during the move operation. As operações de gravação e exclusão são bloqueadas nos grupos de recursos até que a migração seja concluída.Write and delete operations are blocked on the resource groups until the move completes. Esse bloqueio significa que você não pode adicionar, atualizar ou excluir recursos nos grupos de recursos.This lock means you can't add, update, or delete resources in the resource groups. Não significa que os recursos estão congelados.It doesn't mean the resources are frozen. Por exemplo, se você mover um SQL Server e seu banco de dados para um novo grupo de recursos, um aplicativo que usa o banco de dados não terá nenhuma inatividade.For example, if you move a SQL Server and its database to a new resource group, an application that uses the database experiences no downtime. Ele ainda poderá ler e gravar no banco de dados.It can still read and write to the database. O bloqueio pode durar por um máximo de quatro horas, mas a maioria das mudanças é concluída em muito menos tempo.The lock can last for a maximum of four hours, but most moves complete in much less time.

Mover um recurso só o move para um novo grupo de recursos ou assinatura.Moving a resource only moves it to a new resource group or subscription. Não altera o local do recurso.It doesn't change the location of the resource.

Lista de verificação antes de mover recursosChecklist before moving resources

Há algumas etapas importantes a serem executadas antes de mover um recurso.There are some important steps to do before moving a resource. Ao verificar essas condições, é possível evitar erros.By verifying these conditions, you can avoid errors.

  1. Os recursos que você deseja mover devem oferecer suporte à operação de movimentação.The resources you want to move must support the move operation. Para obter uma lista dos recursos que dão suporte à movimentação, consulte mover suporte de operação para recursos.For a list of which resources support move, see Move operation support for resources.

  2. Alguns serviços têm limitações ou requisitos específicos ao mover recursos.Some services have specific limitations or requirements when moving resources. Se você estiver movendo qualquer um dos serviços a seguir, verifique essas diretrizes antes de mover.If you're moving any of the following services, check that guidance before moving.

  3. Se você mover um recurso que tenha uma função do Azure atribuída diretamente ao recurso (ou a um recurso filho), a atribuição de função não será movida e se tornará órfã.If you move a resource that has an Azure role assigned directly to the resource (or a child resource), the role assignment is not moved and becomes orphaned. Após a movimentação, você deve recriar a atribuição de função.After the move, you must re-create the role assignment. Eventualmente, a atribuição de função órfãa será removida automaticamente, mas é uma prática recomendada remover a atribuição de função antes de mover o recurso.Eventually, the orphaned role assignment will be automatically removed, but it is a best practice to remove the role assignment before moving the resource.

    Para obter informações sobre como gerenciar atribuições de função, consulte listar atribuições de função do Azure e Adicionar ou remover atribuições de função do Azure.For information about how to manage role assignments, see List Azure role assignments and Add or remove Azure role assignments.

  4. As assinaturas de origem e de destino devem estar ativas.The source and destination subscriptions must be active. Se você tiver problemas para habilitar uma conta que tenha sido desabilitada crie uma solicitação de Suporte do Azure.If you have trouble enabling an account that has been disabled, create an Azure support request. Selecione Subscription Management para o tipo de problema.Select Subscription Management for the issue type.

  5. As assinaturas de origem e de destino devem existir no mesmo locatário do Azure Active Directory.The source and destination subscriptions must exist within the same Azure Active Directory tenant. Para verificar se as duas assinaturas têm a mesma ID de locatário, use o Azure PowerShell ou a CLI do Azure.To check that both subscriptions have the same tenant ID, use Azure PowerShell or Azure CLI.

    Para o Azure PowerShell, use:For Azure PowerShell, use:

    (Get-AzSubscription -SubscriptionName <your-source-subscription>).TenantId
    (Get-AzSubscription -SubscriptionName <your-destination-subscription>).TenantId
    

    Para a CLI do Azure, use:For Azure CLI, use:

    az account show --subscription <your-source-subscription> --query tenantId
    az account show --subscription <your-destination-subscription> --query tenantId
    

    Se as IDs de locatário para as assinaturas de origem e de destino não forem iguais, use os métodos a seguir para reconciliá-las:If the tenant IDs for the source and destination subscriptions aren't the same, use the following methods to reconcile the tenant IDs:

  6. A assinatura de destino deve estar registrada para que o provedor de recursos do recurso seja movido.The destination subscription must be registered for the resource provider of the resource being moved. Se não estiver, você receberá um erro afirmando que a assinatura não está registrada para um tipo de recurso.If not, you receive an error stating that the subscription is not registered for a resource type. Você pode ver esse erro ao mover um recurso para uma nova assinatura que nunca tenha sido usada com esse tipo de recurso.You might see this error when moving a resource to a new subscription, but that subscription has never been used with that resource type.

    Para o PowerShell, use os seguintes comandos para obter o status do registro:For PowerShell, use the following commands to get the registration status:

    Set-AzContext -Subscription <destination-subscription-name-or-id>
    Get-AzResourceProvider -ListAvailable | Select-Object ProviderNamespace, RegistrationState
    

    Para registrar um provedor de recursos, use:To register a resource provider, use:

    Register-AzResourceProvider -ProviderNamespace Microsoft.Batch
    

    Para a CLI do Azure, use os seguintes comandos para obter o status do registro:For Azure CLI, use the following commands to get the registration status:

    az account set -s <destination-subscription-name-or-id>
    az provider list --query "[].{Provider:namespace, Status:registrationState}" --out table
    

    Para registrar um provedor de recursos, use:To register a resource provider, use:

    az provider register --namespace Microsoft.Batch
    
  7. A conta de movimentação de recursos deve ter pelo menos as seguintes permissões:The account moving the resources must have at least the following permissions:

    • Microsoft. Resources/subscriptions/resourceGroups/moveResources/Action no grupo de recursos de origem.Microsoft.Resources/subscriptions/resourceGroups/moveResources/action on the source resource group.
    • Microsoft. Resources/subscriptions/resourceGroups/Write no grupo de recursos de destino.Microsoft.Resources/subscriptions/resourceGroups/write on the destination resource group.
  8. Antes de mover os recursos, verifique as cotas de assinatura da assinatura para a qual você está movendo os recursos.Before moving the resources, check the subscription quotas for the subscription you're moving the resources to. Se mover os recursos significa que a assinatura excederá seus limites, será necessário verificar se você pode solicitar um aumento na cota.If moving the resources means the subscription will exceed its limits, you need to review whether you can request an increase in the quota. Para obter uma lista de limites e como solicitar um aumento, consulte Limites, cotas e restrições em assinaturas e serviços do Azure.For a list of limits and how to request an increase, see Azure subscription and service limits, quotas, and constraints.

  9. Para uma movimentação entre assinaturas, o recurso e seus recursos dependentes devem estar localizados no mesmo grupo de recursos e devem ser movidos juntos.For a move across subscriptions, the resource and its dependent resources must be located in the same resource group and they must be moved together. Por exemplo, uma VM com discos gerenciados exigiria que a VM e os discos gerenciados fossem movidos juntos, juntamente com outros recursos dependentes.For example, a VM with managed disks would require the VM and the managed disks to be moved together, along with other dependent resources.

    Se você estiver movendo um recurso para uma nova assinatura, verifique se o recurso tem quaisquer recursos dependentes e se eles estão localizados no mesmo grupo de recursos.If you're moving a resource to a new subscription, check to see whether the resource has any dependent resources, and whether they're located in the same resource group. Se os recursos não estiverem no mesmo grupo de recursos, verifique se os recursos podem ser combinados no mesmo grupo de recursos.If the resources aren't in the same resource group, check to see whether the resources can be combined into the same resource group. Nesse caso, coloque todos esses recursos no mesmo grupo de recursos usando uma operação de movimentação entre grupos de recursos.If so, bring all these resources into the same resource group by using a move operation across resource groups.

    Para obter mais informações, consulte cenário para mover entre assinaturas.For more information, see Scenario for move across subscriptions.

Cenário para mover entre assinaturasScenario for move across subscriptions

Mover recursos de uma assinatura para outra é um processo de três etapas:Moving resources from one subscription to another is a three-step process:

cenário de movimentação entre assinaturas

Para fins de ilustração, temos apenas um recurso dependente.For illustration purposes, we have only one dependent resource.

  • Etapa 1: se os recursos dependentes forem distribuídos em grupos de recursos diferentes, primeiro mova-os para um grupo de recursos.Step 1: If dependent resources are distributed across different resource groups, first move them into one resource group.
  • Etapa 2: Mova o recurso e os recursos dependentes da assinatura de origem para a assinatura de destino.Step 2: Move the resource and dependent resources together from the source subscription to the target subscription.
  • Etapa 3: opcionalmente, redistribua os recursos dependentes para grupos de recursos diferentes na assinatura de destino.Step 3: Optionally, redistribute the dependent resources to different resource groups within the target subscription.

Validar movimentaçãoValidate move

A operação validar movimentação permite testar seu cenário de movimentação sem realmente mover os recursos.The validate move operation lets you test your move scenario without actually moving the resources. Use esta operação para verificar se a movimentação será realizada com sucesso.Use this operation to check if the move will succeed. A validação é chamada automaticamente quando você envia uma solicitação de movimentação.Validation is automatically called when you send a move request. Use essa operação somente quando precisar predeterminar os resultados.Use this operation only when you need to predetermine the results. Para executar essa operação, você precisa de:To run this operation, you need the:

  • nome do grupo de recursos de origemname of the source resource group
  • ID do recurso do grupo de recursos de destinoresource ID of the target resource group
  • ID do recurso de cada recurso para moverresource ID of each resource to move
  • o token de acesso para sua contathe access token for your account

Envie a seguinte solicitação:Send the following request:

POST https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<source-group>/validateMoveResources?api-version=2019-05-10
Authorization: Bearer <access-token>
Content-type: application/json

Com um corpo de solicitação:With a request body:

{
 "resources": ["<resource-id-1>", "<resource-id-2>"],
 "targetResourceGroup": "/subscriptions/<subscription-id>/resourceGroups/<target-group>"
}

Se a solicitação estiver formatada corretamente, a operação retornará:If the request is formatted correctly, the operation returns:

Response Code: 202
cache-control: no-cache
pragma: no-cache
expires: -1
location: https://management.azure.com/subscriptions/<subscription-id>/operationresults/<operation-id>?api-version=2018-02-01
retry-after: 15
...

O código de status 202 indica que a solicitação de validação foi aceita, mas ainda não determinou se a operação de movimentação será bem-sucedida.The 202 status code indicates the validation request was accepted, but it hasn't yet determined if the move operation will succeed. O valor location contém um URL que você usa para verificar o status da operação de longa duração.The location value contains a URL that you use to check the status of the long-running operation.

Para verificar o status, envie a seguinte solicitação:To check the status, send the following request:

GET <location-url>
Authorization: Bearer <access-token>

Enquanto a operação ainda está em execução, você continua recebendo o código de status 202.While the operation is still running, you continue to receive the 202 status code. Aguarde o número de segundos indicado no valor retry-after antes de tentar novamente.Wait the number of seconds indicated in the retry-after value before trying again. Se a operação de movimentação é validado com êxito, você receberá o código de 204 status.If the move operation validates successfully, you receive the 204 status code. Se a validação da movimentação falhar, você receberá uma mensagem de erro, como:If the move validation fails, you receive an error message, such as:

{"error":{"code":"ResourceMoveProviderValidationFailed","message":"<message>"...}}

Usar o portalUse the portal

Para mover recursos, selecione o grupo de recursos que contém esses recursos.To move resources, select the resource group that contains those resources.

Quando você exibe o grupo de recursos, a opção mover é desabilitada.When you view the resource group, the move option is disabled.

opção de movimentação desabilitada

Para habilitar a opção mover, selecione os recursos que você deseja mover.To enable the move option, select the resources you want to move. Para selecionar todos os recursos, marque a caixa de seleção na parte superior da lista.To select all of the resources, select the checkbox at the top of list. Ou selecione recursos individualmente.Or, select resources individually. Depois de selecionar os recursos, a opção mover é habilitada.After selecting resources, the move option is enabled.

opção de movimentação desabilitada

Selecione o botão mover .Select the Move button.

opção de movimentação desabilitada

Esse botão oferece três opções:This button gives you three options:

Selecione se você está movendo os recursos para um novo grupo de recursos ou uma nova assinatura.Select whether you're moving the resources to a new resource group or a new subscription.

Selecione o grupo de recursos de destino.Select the destination resource group. Confirme que você precisa atualizar scripts para esses recursos e selecione OK.Acknowledge that you need to update scripts for these resources and select OK. Se você optou por mover para uma nova assinatura, também deverá selecionar a assinatura de destino.If you selected to move to a new subscription, you must also select the destination subscription.

opção de movimentação desabilitada

Depois de validar que os recursos podem ser movidos, você verá uma notificação informando que a operação de movimentação está em execução.After validating that the resources can be moved, you see a notification that the move operation is running.

opção de movimentação desabilitada

Quando for concluída, você será notificado sobre o resultado.When it has completed, you're notified of the result.

Se você receber um erro, consulte solucionar problemas de movimentação de recursos do Azure para novo grupo de recursos ou assinatura.If you get an error, see Troubleshoot moving Azure resources to new resource group or subscription.

Usar PowerShell do AzureUse Azure PowerShell

Para mover os recursos existentes para outro grupo de recursos ou assinatura, use o comando Move-AzResource.To move existing resources to another resource group or subscription, use the Move-AzResource command. O exemplo a seguir mostra como mover diversos recursos para um novo grupo de recursos.The following example shows how to move several resources to a new resource group.

$webapp = Get-AzResource -ResourceGroupName OldRG -ResourceName ExampleSite
$plan = Get-AzResource -ResourceGroupName OldRG -ResourceName ExamplePlan
Move-AzResource -DestinationResourceGroupName NewRG -ResourceId $webapp.ResourceId, $plan.ResourceId

Para mover para uma nova assinatura, inclua um valor para o parâmetro DestinationSubscriptionId.To move to a new subscription, include a value for the DestinationSubscriptionId parameter.

Se você receber um erro, consulte solucionar problemas de movimentação de recursos do Azure para novo grupo de recursos ou assinatura.If you get an error, see Troubleshoot moving Azure resources to new resource group or subscription.

Usar a CLI do AzureUse Azure CLI

Para mover os recursos existentes para outro grupo de recursos ou assinatura, use o comando az resource move.To move existing resources to another resource group or subscription, use the az resource move command. Forneça as IDs dos recursos a mover.Provide the resource IDs of the resources to move. O exemplo a seguir mostra como mover diversos recursos para um novo grupo de recursos.The following example shows how to move several resources to a new resource group. No parâmetro --ids, forneça uma lista separada por espaços das IDs do recurso que deseja mover.In the --ids parameter, provide a space-separated list of the resource IDs to move.

webapp=$(az resource show -g OldRG -n ExampleSite --resource-type "Microsoft.Web/sites" --query id --output tsv)
plan=$(az resource show -g OldRG -n ExamplePlan --resource-type "Microsoft.Web/serverfarms" --query id --output tsv)
az resource move --destination-group newgroup --ids $webapp $plan

Para mover para uma nova assinatura, forneça o parâmetro --destination-subscription-id.To move to a new subscription, provide the --destination-subscription-id parameter.

Se você receber um erro, consulte solucionar problemas de movimentação de recursos do Azure para novo grupo de recursos ou assinatura.If you get an error, see Troubleshoot moving Azure resources to new resource group or subscription.

Usar a API RESTUse REST API

Para mover os recursos existentes para outro grupo de recursos ou assinatura, use a operação mover recursos .To move existing resources to another resource group or subscription, use the Move resources operation.

POST https://management.azure.com/subscriptions/{source-subscription-id}/resourcegroups/{source-resource-group-name}/moveResources?api-version={api-version}

No corpo da solicitação, especifique o grupo de recursos de destino e os recursos para mover.In the request body, you specify the target resource group and the resources to move.

{
 "resources": ["<resource-id-1>", "<resource-id-2>"],
 "targetResourceGroup": "/subscriptions/<subscription-id>/resourceGroups/<target-group>"
}

Se você receber um erro, consulte solucionar problemas de movimentação de recursos do Azure para novo grupo de recursos ou assinatura.If you get an error, see Troubleshoot moving Azure resources to new resource group or subscription.

Perguntas frequentesFrequently asked questions

Pergunta: minha operação de movimentação de recursos, que geralmente leva alguns minutos, está em execução por quase uma hora. Há algo errado?Question: My resource move operation, which usually takes a few minutes, has been running for almost an hour. Is there something wrong?

Mover um recurso é uma operação complexa que tem diferentes fases.Moving a resource is a complex operation that has different phases. Ele pode envolver mais do que apenas o provedor de recursos do recurso que você está tentando mover.It can involve more than just the resource provider of the resource you're trying to move. Devido às dependências entre os provedores de recursos, Azure Resource Manager permite que a operação seja concluída por 4 horas.Because of the dependencies between resource providers, Azure Resource Manager allows 4 hours for the operation to complete. Esse período de tempo dá aos provedores de recursos uma chance de se recuperar de problemas transitórios.This time period gives resource providers a chance to recover from transient issues. Se sua solicitação de movimentação estiver dentro do período de quatro horas, a operação continuará tentando ser concluída e ainda poderá ser bem sucedido.If your move request is within the four-hour period, the operation keeps trying to complete and may still succeed. Os grupos de recursos de origem e de destino são bloqueados durante esse tempo para evitar problemas de consistência.The source and destination resource groups are locked during this time to avoid consistency issues.

Pergunta: por que meu grupo de recursos está bloqueado por quatro horas durante a movimentação de recursos?Question: Why is my resource group locked for four hours during resource move?

Uma solicitação de movimentação é permitida no máximo quatro horas para ser concluída.A move request is allowed a maximum of four hours to complete. Para evitar modificações nos recursos que estão sendo movidos, os grupos de recursos de origem e de destino são bloqueados durante a movimentação do recurso.To prevent modifications on the resources being moved, both the source and destination resource groups are locked for the duration of the resource move.

Há duas fases em uma solicitação de movimentação.There are two phases in a move request. Na primeira fase, o recurso é movido.In the first phase, the resource is moved. Na segunda fase, as notificações são enviadas para outros provedores de recursos que dependem do recurso que está sendo movido.In the second phase, notifications are sent to other resource providers that are dependent on the resource being moved. Um grupo de recursos pode ser bloqueado para as quatro horas inteiras quando um provedor de recursos falhar em qualquer fase.A resource group can be locked for the entire four hours when a resource provider fails either phase. Durante o tempo permitido, o Gerenciador de recursos repete a etapa com falha.During the allowed time, Resource Manager retries the failed step.

Se um recurso não puder ser movido dentro de quatro horas, o Resource Manager desbloqueará os dois grupos de recursos.If a resource can't be moved within four hours, Resource Manager unlocks both resource groups. Os recursos que foram movidos com êxito estão no grupo de recursos de destino.Resources that were successfully moved are in the destination resource group. Os recursos que não foram movidos são deixados no grupo de recursos de origem.Resources that failed to move are left the source resource group.

Pergunta: quais são as implicações dos grupos de recursos de origem e de destino bloqueados durante a movimentação de recursos?Question: What are the implications of the source and destination resource groups being locked during the resource move?

O bloqueio impede que você exclua um dos grupos de recursos, criando um novo recurso em qualquer grupo de recursos ou excluindo qualquer um dos recursos envolvidos na movimentação.The lock prevents you from deleting either resource group, creating a new resource in either resource group, or deleting any of the resources involved in the move.

A imagem a seguir mostra uma mensagem de erro do portal do Azure quando um usuário tenta excluir um grupo de recursos que faz parte de uma movimentação em andamento.The following image shows an error message from the Azure portal when a user tries to delete a resource group that is part of an ongoing move.

Mover mensagem de erro ao tentar excluir

Pergunta: o que significa o código de erro "MissingMoveDependentResources"?Question: What does the error code "MissingMoveDependentResources" mean?

Ao mover um recurso, seus recursos dependentes devem existir no grupo de recursos de destino ou na assinatura ou ser incluídos na solicitação de movimentação.When moving a resource, its dependent resources must either exist in the destination resource group or subscription, or be included in the move request. Você Obtém o código de erro MissingMoveDependentResources quando um recurso dependente não atende a esse requisito.You get the MissingMoveDependentResources error code when a dependent resource doesn't meet this requirement. A mensagem de erro tem detalhes sobre o recurso dependente que precisa ser incluído na solicitação de movimentação.The error message has details about the dependent resource that needs to be included in the move request.

Por exemplo, mover uma máquina virtual pode exigir a movimentação de sete tipos de recursos com três provedores de recursos diferentes.For example, moving a virtual machine could require moving seven resource types with three different resource providers. Esses tipos e provedores de recursos são:Those resource providers and types are:

  • Microsoft.ComputeMicrosoft.Compute

    • virtualMachinesvirtualMachines
    • disksdisks
  • Microsoft.NetworkMicrosoft.Network

    • networkInterfacesnetworkInterfaces
    • publicIPAddressespublicIPAddresses
    • networkSecurityGroupsnetworkSecurityGroups
    • virtualNetworksvirtualNetworks
  • Microsoft.StorageMicrosoft.Storage

    • storageAccountsstorageAccounts

Outro exemplo comum envolve a movimentação de uma rede virtual.Another common example involves moving a virtual network. Talvez seja necessário mover vários outros recursos associados a essa rede virtual.You may have to move several other resources associated with that virtual network. A solicitação de movimentação pode exigir a movimentação de endereços IP públicos, tabelas de rotas, gateways de rede virtual, grupos de segurança de rede e outros.The move request could require moving public IP addresses, route tables, virtual network gateways, network security groups, and others.

Pergunta: por que não posso mover alguns recursos no Azure?Question: Why can't I move some resources in Azure?

No momento, nem todos os recursos no Azure dão suporte à movimentação.Currently, not all resources in Azure support move. Para obter uma lista de recursos que dão suporte à movimentação, consulte mover suporte de operação para recursos.For a list of resources that support move, see Move operation support for resources.

Próximas etapasNext steps

Para obter uma lista dos recursos que dão suporte à movimentação, consulte mover suporte de operação para recursos.For a list of which resources support move, see Move operation support for resources.