Mover recursos para um novo grupo de recursos ou subscriçãoMove resources to a new resource group or subscription

Este artigo mostra-lhe como mover os recursos da Azure para outra subscrição da Azure ou outro grupo de recursos sob a mesma subscrição.This article shows you how to move Azure resources to either another Azure subscription or another resource group under the same subscription. Para mover recursos, pode utilizar o portal do Azure, o Azure PowerShell, a CLI do Azure ou a API REST.You can use the Azure portal, Azure PowerShell, Azure CLI, or the REST API to move resources.

Tanto o grupo de origem como o grupo alvo estão bloqueados durante a operação de movimento.Both the source group and the target group are locked during the move operation. As operações de escrita e eliminação são bloqueadas nos grupos de recursos até que o movimento esteja concluído.Write and delete operations are blocked on the resource groups until the move completes. Este bloqueio significa que não pode adicionar, atualizar ou eliminar 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 mover um SQL Server e a sua base de dados para um novo grupo de recursos, uma aplicação que utiliza a base de dados não experimenta tempo de 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. Ainda pode ler e escrever na base de dados.It can still read and write to the database. A fechadura pode durar no máximo quatro horas, mas a maioria dos movimentos completa 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 apenas o move para um grupo de recursos ou uma subscrição novos.Moving a resource only moves it to a new resource group or subscription. Não altera a localização do recurso.It doesn't change the location of the resource.

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

Antes de mover um recurso, é necessário realizar alguns passos importantes.There are some important steps to do before moving a resource. Ao confirmar estas condições, pode evitar erros.By verifying these conditions, you can avoid errors.

  1. Os recursos que pretende mover devem apoiar a operação de movimento.The resources you want to move must support the move operation. Para obter uma lista de recursos que apoiam o movimento, consulte o suporte de operação move 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 na movimentação de recursos.Some services have specific limitations or requirements when moving resources. Se estiver a mover algum dos seguintes serviços, verifique essa orientação antes de se mover.If you're moving any of the following services, check that guidance before moving.

  3. Se mover um recurso que tenha uma função Azure atribuída diretamente ao recurso (ou recurso infantil), a atribuição de funções não é movida e torna-se ó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. Depois da mudança, tens de recriar a tarefa de função.After the move, you must re-create the role assignment. Eventualmente, a atribuição de funções órfãs será automaticamente removida, mas é uma boa prática remover a atribuição de funções 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 gerir atribuições de funções, consulte atribuições de funções list Azure e adicione ou remova atribuições de funções 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 destino devem estar ativas.The source and destination subscriptions must be active. Se tiver problemas em ativar uma conta que tenha sido desativada, crie um pedido de suporte Azure.If you have trouble enabling an account that has been disabled, create an Azure support request. Selecione Gestão de Subscrição para o tipo de emissão.Select Subscription Management for the issue type.

  5. As assinaturas de origem e destino devem existir dentro do mesmo inquilino do Azure Ative Directory.The source and destination subscriptions must exist within the same Azure Active Directory tenant. Para verificar se ambas as subscrições têm o mesmo ID do inquilino, utilize a Azure PowerShell ou a Azure CLI.To check that both subscriptions have the same tenant ID, use Azure PowerShell or Azure CLI.

    Para a Azure PowerShell, utilize:For Azure PowerShell, use:

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

    Para a CLI do Azure, utilize: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 do arrendatário para as assinaturas de origem e destino não forem as mesmas, utilize os seguintes métodos para conciliar os IDs do inquilino: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 subscrição de destino tem de estar registada no fornecedor de recursos do recurso a ser movido.The destination subscription must be registered for the resource provider of the resource being moved. Caso contrário, recebe um erro indicando que a subscrição não está registada para um tipo de recurso.If not, you receive an error stating that the subscription is not registered for a resource type. Pode ver este erro ao mover um recurso para uma nova subscrição, mas essa subscrição nunca foi utilizada 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 powerShell, utilize os seguintes comandos para obter o estado de registo: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 registar um fornecedor de recursos, utilize:To register a resource provider, use:

    Register-AzResourceProvider -ProviderNamespace Microsoft.Batch
    

    Para o Azure CLI, utilize os seguintes comandos para obter o estado de registo: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 registar um fornecedor de recursos, utilize:To register a resource provider, use:

    az provider register --namespace Microsoft.Batch
    
  7. A conta que movimenta os 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 on the source resource group.Microsoft.Resources/subscriptions/resourceGroups/moveResources/action on the source resource group.
    • Microsoft.Resources/subscriptions/resourceGroups/write on the destination resource resource group.Microsoft.Resources/subscriptions/resourceGroups/write on the destination resource group.
  8. Antes de mover os recursos, verifique as quotas de subscrição para a subscrição para a qual está a mover 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 subscrição excederá os seus limites, você precisa rever se você pode solicitar um aumento da quota.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 os limites de subscrição e serviços, quotas e restrições de subscrição da Azure.For a list of limits and how to request an increase, see Azure subscription and service limits, quotas, and constraints.

  9. Para uma mudança através das assinaturas, o recurso e os seus recursos dependentes devem estar localizados no mesmo grupo de recursos e devem ser deslocados em conjunto.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, um VM com discos geridos exigiria que o VM e os discos geridos fossem movidos em conjunto, 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 estiver a mover um recurso para uma nova subscrição, verifique se o recurso tem algum recurso dependente e se 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. Em caso afirmativo, traga todos estes recursos para o mesmo grupo de recursos utilizando uma operação de movimento 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-se através de subscrições.For more information, see Scenario for move across subscriptions.

Cenário para mover entre subscriçõesScenario for move across subscriptions

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

cenário de movimento de subscrição cruzada

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

  • Passo 1: Se os recursos dependentes forem distribuídos por diferentes grupos de recursos, desloque-os primeiro para um grupo de recursos.Step 1: If dependent resources are distributed across different resource groups, first move them into one resource group.
  • Passo 2: Mover o recurso e os recursos dependentes da subscrição de origem para a subscrição-alvo.Step 2: Move the resource and dependent resources together from the source subscription to the target subscription.
  • Passo 3: Opcionalmente, redistribuir os recursos dependentes para diferentes grupos de recursos dentro da subscrição-alvo.Step 3: Optionally, redistribute the dependent resources to different resource groups within the target subscription.

Validar movimentoValidate move

A operação de movimento validado permite-lhe testar o seu cenário de movimento sem realmente mover os recursos.The validate move operation lets you test your move scenario without actually moving the resources. Utilize esta operação para verificar se o movimento terá sucesso.Use this operation to check if the move will succeed. A validação é automaticamente chamada quando envia um pedido de movimento.Validation is automatically called when you send a move request. Utilize esta operação apenas quando necessitar de pré-determinar os resultados.Use this operation only when you need to predetermine the results. Para executar esta operação, você precisa do:To run this operation, you need the:

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

Enviar o seguinte pedido: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 pedido:With a request body:

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

Se o pedido for formatado corretamente, a operação retorna: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 estado de 202 indica que o pedido de validação foi aceite, mas ainda não determinou se a operação de movimento 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 location valor contém um URL que utiliza para verificar o estado 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 estado, envie o seguinte pedido:To check the status, send the following request:

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

Enquanto a operação ainda está em funcionamento, continua a receber o código de estado 202.While the operation is still running, you continue to receive the 202 status code. Aguarde o número de segundos indicados no retry-after valor antes de tentar novamente.Wait the number of seconds indicated in the retry-after value before trying again. Se a operação de movimento validar com sucesso, receberá o código de estado 204.If the move operation validates successfully, you receive the 204 status code. Se a validação do movimento falhar, recebe uma mensagem de erro, tal como:If the move validation fails, you receive an error message, such as:

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

Utilizar 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 vê o grupo de recursos, a opção de movimento é desativada.When you view the resource group, the move option is disabled.

opção de mudança desativado

Para ativar a opção de movimento, selecione os recursos que pretende mover.To enable the move option, select the resources you want to move. Para selecionar todos os recursos, selecione a caixa de verificação no topo da lista.To select all of the resources, select the checkbox at the top of list. Ou, selecione recursos individualmente.Or, select resources individually. Após a seleção dos recursos, a opção de movimento está ativada.After selecting resources, the move option is enabled.

opção de mudança desativado

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

opção de mudança desativado

Este botão dá-lhe três opções:This button gives you three options:

Selecione se está a mover os recursos para um novo grupo de recursos ou uma nova subscrição.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. Reconheça que precisa de atualizar scripts para estes recursos e selecione OK.Acknowledge that you need to update scripts for these resources and select OK. Se selecionou para mudar para uma nova subscrição, também deve selecionar a subscrição do destino.If you selected to move to a new subscription, you must also select the destination subscription.

opção de mudança desativado

Depois de validar que os recursos podem ser movidos, vê uma notificação de que a operação de movimento 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 mudança desativado

Quando estiver concluído, é notificado do resultado.When it has completed, you're notified of the result.

Se tiver um erro, consulte Troubleshoot movendo os recursos da Azure para um novo grupo de recursos ou subscrição.If you get an error, see Troubleshoot moving Azure resources to new resource group or subscription.

Utilizar o Azure PowerShellUse Azure PowerShell

Para mover os recursos existentes para outro grupo de recursos ou subscrição, utilize 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 vários 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 passar para uma nova subscrição, inclua um valor para o DestinationSubscriptionId parâmetro.To move to a new subscription, include a value for the DestinationSubscriptionId parameter.

Se tiver um erro, consulte Troubleshoot movendo os recursos da Azure para um novo grupo de recursos ou subscrição.If you get an error, see Troubleshoot moving Azure resources to new resource group or subscription.

Utilizar a CLI do AzureUse Azure CLI

Para mover os recursos existentes para outro grupo de recursos ou subscrição, utilize o comando de movimento de recursos az.To move existing resources to another resource group or subscription, use the az resource move command. Forneça os IDs de recursos dos recursos para mover.Provide the resource IDs of the resources to move. O exemplo a seguir mostra como mover vários recursos para um novo grupo de recursos.The following example shows how to move several resources to a new resource group. No --ids parâmetro, forneça uma lista separada do espaço dos IDs de recurso para 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 passar para uma nova subscrição, forneça o --destination-subscription-id parâmetro.To move to a new subscription, provide the --destination-subscription-id parameter.

Se tiver um erro, consulte Troubleshoot movendo os recursos da Azure para um novo grupo de recursos ou subscrição.If you get an error, see Troubleshoot moving Azure resources to new resource group or subscription.

Utilizar a API RESTUse REST API

Para mover os recursos existentes para outro grupo de recursos ou subscrição, utilize a operação de recursos Move.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 órgão de pedido, especifique o grupo de recursos-alvo e os recursos para se 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 tiver um erro, consulte Troubleshoot movendo os recursos da Azure para um novo grupo de recursos ou subscrição.If you get an error, see Troubleshoot moving Azure resources to new resource group or subscription.

Perguntas mais frequentesFrequently asked questions

Pergunta: A minha operação de movimento de recursos, que normalmente demora alguns minutos, está a decorrer há quase uma hora. Passa-se alguma coisa?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. Pode envolver mais do que apenas o fornecedor de recursos do recurso que está a tentar mover.It can involve more than just the resource provider of the resource you're trying to move. Devido às dependências entre fornecedores de recursos, o Azure Resource Manager permite 4 horas para a operação estar concluída.Because of the dependencies between resource providers, Azure Resource Manager allows 4 hours for the operation to complete. Este período de tempo dá aos fornecedores de recursos a oportunidade de se recuperarem de questões transitórias.This time period gives resource providers a chance to recover from transient issues. Se o seu pedido de movimento for dentro do período de quatro horas, a operação continua a tentar ser concluída e poderá ainda ter sucesso.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 destino estão bloqueados durante este período para evitar problemas de consistência.The source and destination resource groups are locked during this time to avoid consistency issues.

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

Um pedido de movimento é permitido um máximo de quatro horas para ser concluído.A move request is allowed a maximum of four hours to complete. Para evitar que as modificações dos recursos sejam movidas, tanto os grupos de recursos de origem como de destino estão bloqueados durante a duração da deslocação dos recursos.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 num pedido de mudança.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 a outros fornecedores de recursos que dependem da deslocação do recurso.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 durante as quatro horas inteiras quando um fornecedor de recursos falha 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 Gestor de Recursos retrimba o passo falhado.During the allowed time, Resource Manager retries the failed step.

Se um recurso não puder ser movido dentro de quatro horas, o Gestor de Recursos desbloqueia ambos os 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 sucesso estão no grupo de recursos de destino.Resources that were successfully moved are in the destination resource group. Os recursos que não conseguiram mover-se são deixados pelo 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 destino que estão bloqueados durante a mudança de recursos?Question: What are the implications of the source and destination resource groups being locked during the resource move?

O bloqueio impede-o de eliminar qualquer um dos grupos de recursos, criar um novo recurso em qualquer um dos grupos de recursos, ou eliminar qualquer um dos recursos envolvidos na mudança.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 Azure quando um utilizador tenta eliminar um grupo de recursos que faz parte de um movimento em curso.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 tentando apagar

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

Ao mover um recurso, os seus recursos dependentes devem existir no grupo de recursos de destino ou na subscrição, ou ser incluídos no pedido de mudança.When moving a resource, its dependent resources must either exist in the destination resource group or subscription, or be included in the move request. Obtém-se o código de erro MissingMoveDependentResources quando um recurso dependente não satisfaz este 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 de ser incluído no pedido de movimento.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 deslocação de sete tipos de recursos com três fornecedores de recursos diferentes.For example, moving a virtual machine could require moving seven resource types with three different resource providers. Estes fornecedores e tipos de recursos são:Those resource providers and types are:

  • Microsoft.ComputeMicrosoft.Compute

    • virtualMachinesvirtualMachines
    • discosdisks
  • Microsoft.NetworkMicrosoft.Network

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

    • armazenamento ContasstorageAccounts

Outro exemplo comum envolve mover uma rede virtual.Another common example involves moving a virtual network. Poderá ter de mover vários outros recursos associados a essa rede virtual.You may have to move several other resources associated with that virtual network. O pedido de mudança poderia exigir a movimentação de endereços IP públicos, tabelas de rotas, gateways de rede virtuais, grupos de segurança de rede, entre 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 em Azure?Question: Why can't I move some resources in Azure?

Atualmente, nem todos os recursos no movimento de apoio da Azure.Currently, not all resources in Azure support move. Para obter uma lista de recursos que suportam movimento, consulte o suporte de operação Move para recursos.For a list of resources that support move, see Move operation support for resources.

Passos seguintesNext steps

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