Traslado de los recursos a un nuevo grupo de recursos o a una nueva suscripciónMove resources to a new resource group or subscription

En este artículo se explica cómo trasladar recursos de Azure a otra suscripción de Azure o a otro grupo de recursos en la misma suscripción.This article shows you how to move Azure resources to either another Azure subscription or another resource group under the same subscription. Puede usar Azure Portal, Azure PowerShell, la CLI de Azure o la API REST para trasladar recursos.You can use the Azure portal, Azure PowerShell, Azure CLI, or the REST API to move resources.

Tanto el grupo de origen como el grupo de destino se bloquean durante la operación de traslado.Both the source group and the target group are locked during the move operation. Las operaciones de escritura y eliminación están bloqueadas en los grupos de recursos hasta que se completa el movimiento.Write and delete operations are blocked on the resource groups until the move completes. Este bloqueo significa que no puede agregar, actualizar ni eliminar recursos de los grupos de recursos.This lock means you can't add, update, or delete resources in the resource groups. Pero no significa que los recursos estén inmovilizados.It doesn't mean the resources are frozen. Por ejemplo, si mueve un servidor SQL Server y su base de datos a un nuevo grupo de recursos, una aplicación que utiliza la base de datos no experimenta ningún tiempo de inactividad.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. Todavía puede leer y escribir en la base de datos.It can still read and write to the database. El bloqueo puede durar un máximo de cuatro horas, pero la mayoría de los movimientos se completan en mucho menos tiempo.The lock can last for a maximum of four hours, but most moves complete in much less time.

Si se mueve un recurso, solo se mueve a un nuevo grupo de recursos o suscripción.Moving a resource only moves it to a new resource group or subscription. No cambia la ubicación del recurso.It doesn't change the location of the resource.

Lista de comprobación antes de mover recursosChecklist before moving resources

Hay algunos pasos importantes que deben realizarse antes de mover un recurso.There are some important steps to do before moving a resource. Puede evitar errores mediante la comprobación de estas condiciones.By verifying these conditions, you can avoid errors.

  1. Los recursos que desea trasladar deben ser compatibles con la operación de traslado.The resources you want to move must support the move operation. Para una lista de qué recursos son compatibles con el traslado, consulte Compatibilidad con la operación de traslado para recursos.For a list of which resources support move, see Move operation support for resources.

  2. Algunos servicios tienen limitaciones o requisitos específicos al trasladar recursos.Some services have specific limitations or requirements when moving resources. Si ha trasladado cualquiera de los siguientes servicios, compruebe esa guía antes de trasladarlo.If you're moving any of the following services, check that guidance before moving.

  3. Las suscripciones de origen y de destino deben estar activas.The source and destination subscriptions must be active. Si tiene problemas para habilitar una cuenta que se ha deshabilitado, cree una solicitud de soporte técnico de Azure.If you have trouble enabling an account that has been disabled, create an Azure support request. Seleccione Administración de suscripciones para el tipo de problema.Select Subscription Management for the issue type.

  4. Las suscripciones de origen y destino deben existir en el mismo inquilino de Azure Active Directory.The source and destination subscriptions must exist within the same Azure Active Directory tenant. Para comprobar que ambas suscripciones tienen el mismo identificador de inquilino, utilice Azure PowerShell o la CLI de Azure.To check that both subscriptions have the same tenant ID, use Azure PowerShell or Azure CLI.

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

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

    Para la CLI de Azure, utilice:For Azure CLI, use:

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

    Si los identificadores de inquilino de las suscripciones de origen y destino no son los mismos, use los siguientes métodos para conciliarlos:If the tenant IDs for the source and destination subscriptions aren't the same, use the following methods to reconcile the tenant IDs:

  5. La suscripción de destino correspondiente al proveedor de recursos del recurso que se traslada debe estar registrada.The destination subscription must be registered for the resource provider of the resource being moved. Si no es así, recibirá un error en el que se indicará que la suscripción no está registrada para un tipo de recurso.If not, you receive an error stating that the subscription is not registered for a resource type. Podría encontrar este error al mover un recurso a una nueva suscripción que nunca se ha utilizado con ese 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.

    En PowerShell, use los siguientes comandos para obtener el estado de 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 un proveedor de recursos, use:To register a resource provider, use:

    Register-AzResourceProvider -ProviderNamespace Microsoft.Batch
    

    En la CLI de Azure, use los siguientes comandos para obtener el estado de 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 un proveedor de recursos, use:To register a resource provider, use:

    az provider register --namespace Microsoft.Batch
    
  6. La cuenta que mueve los recursos debe tener al menos los permisos siguientes:The account moving the resources must have at least the following permissions:

    • Microsoft.Resources/subscriptions/resourceGroups/moveResources/action en el grupo de recursos de origen.Microsoft.Resources/subscriptions/resourceGroups/moveResources/action on the source resource group.
    • Microsoft.Resources/subscriptions/resourceGroups/write en el grupo de recursos de destino.Microsoft.Resources/subscriptions/resourceGroups/write on the destination resource group.
  7. Antes de mover los recursos, compruebe las cuotas de la suscripción a la que está trasladando los recursos.Before moving the resources, check the subscription quotas for the subscription you're moving the resources to. Si trasladar los recursos significa que la suscripción excederá sus límites, debe revisar si puede solicitar un aumento de la cuota.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 ver una lista de estos límites y cómo solicitar un aumento, consulte Límites, cuotas y restricciones de suscripción y servicios de Microsoft Azure.For a list of limits and how to request an increase, see Azure subscription and service limits, quotas, and constraints.

  8. Para un traslado entre suscripciones, el recurso y sus recursos dependientes deben encontrarse en el mismo grupo de recursos y deben trasladarse 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 ejemplo, una máquina virtual con discos administrados requeriría que la máquina virtual y los discos administrados se trasladaran juntos, junto con otros recursos dependientes.For example, a VM with managed disks would require the VM and the managed disks to be moved together, along with other dependent resources.

    Si va a trasladar un recurso a una nueva suscripción, compruebe si el recurso tiene recursos dependientes y si están ubicados en el mismo 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. Si los recursos no están en el mismo grupo de recursos, compruebe si los recursos pueden consolidarse en el mismo grupo de recursos.If the resources aren't in the same resource group, check to see whether the resources can be consolidated into the same resource group. Si es así, lleve todos estos recursos al mismo grupo de recursos mediante una operación de traslado entre grupos de recursos.If so, bring all these resources into the same resource group by using a move operation across resource groups.

    Para más información, consulte Escenario para el traslado entre suscripciones.For more information, see Scenario for move across subscriptions.

Escenario para el traslado entre suscripcionesScenario for move across subscriptions

El traslado de recursos de una suscripción a otra es un proceso de tres pasos:Moving resources from one subscription to another is a three-step process:

escenario de traslado entre suscripciones

Con fines ilustrativos, solo tenemos un recurso dependiente.For illustration purposes, we have only one dependent resource.

  • Paso 1: Si los recursos dependientes se distribuyen entre diferentes grupos de recursos, trasládelos primero a un grupo de recursos.Step 1: If dependent resources are distributed across different resource groups, first move them into one resource group.
  • Paso 2: Traslade el recurso y los recursos dependientes juntos desde la suscripción de origen hasta la de destino.Step 2: Move the resource and dependent resources together from the source subscription to the target subscription.
  • Paso 3: Opcionalmente, redistribuya los recursos dependientes a distintos grupos de recursos dentro de la suscripción de destino.Step 3: Optionally, redistribute the dependent resources to different resource groups within the target subscription.

Validar el movimientoValidate move

La operación de validación del movimiento le permite probar el escenario de movimiento sin mover realmente los recursos.The validate move operation lets you test your move scenario without actually moving the resources. Use esta operación para comprobar si el movimiento se realizará correctamente.Use this operation to check if the move will succeed. La validación se llama automáticamente cuando se envía una solicitud de traslado.Validation is automatically called when you send a move request. Use esta operación solo cuando necesite determinar de antemano los resultados.Use this operation only when you need to predetermine the results. Para ejecutar esta operación, necesita el:To run this operation, you need the:

  • nombre del grupo de recursos de origenname of the source resource group
  • identificador de recurso del grupo de recursos de destinoresource ID of the target resource group
  • identificador de recurso de cada recurso que se va a moverresource ID of each resource to move
  • token de acceso de la cuentathe access token for your account

Envíe la solicitud siguiente: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

Con un cuerpo de la solicitud:With a request body:

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

Si la solicitud tiene un formato correcto, la operación devuelve: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
...

El código de estado 202 indica que se ha aceptado la solicitud de validación, pero aún no se ha determinado si la operación de movimiento se realizará correctamente.The 202 status code indicates the validation request was accepted, but it hasn't yet determined if the move operation will succeed. El valor location contiene una dirección URL que se usa para comprobar el estado de la operación de ejecución larga.The location value contains a URL that you use to check the status of the long-running operation.

Para comprobar el estado, envíe la solicitud siguiente:To check the status, send the following request:

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

Mientras todavía se esté ejecutando la operación, continuará recibiendo el código de estado 202.While the operation is still running, you continue to receive the 202 status code. Espere el número de segundos que se indica en el valor retry-after antes de intentarlo de nuevo.Wait the number of seconds indicated in the retry-after value before trying again. Si la operación de movimiento se valida correctamente, recibirá el código de estado 204.If the move operation validates successfully, you receive the 204 status code. Si falla la validación de movimiento, recibirá un mensaje de error, como:If the move validation fails, you receive an error message, such as:

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

Uso del portalUse the portal

Para trasladar recursos, seleccione el grupo de recursos con esos recursos y, después, el botón Mover.To move resources, select the resource group with those resources, and then select the Move button.

Mover recursos

Seleccione si va a mover los recursos a un nuevo grupo de recursos o a una nueva suscripción.Select whether you're moving the resources to a new resource group or a new subscription.

Seleccione los recursos que trasladar y el grupo de recursos de destino.Select the resources to move and the destination resource group. Confirme que tiene que actualizar los scripts para estos recursos y seleccione Aceptar.Acknowledge that you need to update scripts for these resources and select OK. Si ha seleccionado el icono de edición de la suscripción en el paso anterior, también debe seleccionar la suscripción de destino.If you selected the edit subscription icon in the previous step, you must also select the destination subscription.

seleccionar destino

En Notificaciones, podrá ver que la operación de traslado está en curso.In Notifications, you see that the move operation is running.

mostrar el estado del traslado

Cuando haya finalizado, se le notificará del resultado.When it has completed, you're notified of the result.

mostrar el resultado del traslado

Si se produce un error, consulte Troubleshoot moving Azure resources to new resource group or subscription (Solución de problemas del traslado de los recursos de Azure a una nueva suscripción o grupo de recursos).If you get an error, see Troubleshoot moving Azure resources to new resource group or subscription.

Uso de Azure PowerShellUse Azure PowerShell

Para mover recursos existentes a otro grupo de recursos o a otra suscripción, use el comando Move-AzResource.To move existing resources to another resource group or subscription, use the Move-AzResource command. El siguiente ejemplo muestra cómo trasladar varios recursos a un nuevo 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 moverlos a una nueva suscripción, especifique un valor para el parámetro DestinationSubscriptionId.To move to a new subscription, include a value for the DestinationSubscriptionId parameter.

Si se produce un error, consulte Troubleshoot moving Azure resources to new resource group or subscription (Solución de problemas del traslado de los recursos de Azure a una nueva suscripción o grupo de recursos).If you get an error, see Troubleshoot moving Azure resources to new resource group or subscription.

Uso de CLI de AzureUse Azure CLI

Para trasladar recursos existentes a otro grupo de recursos o a otra suscripción, use el comando az resource move.To move existing resources to another resource group or subscription, use the az resource move command. Proporcione los identificadores de recursos de los recursos que se van a mover.Provide the resource IDs of the resources to move. El siguiente ejemplo muestra cómo trasladar varios recursos a un nuevo grupo de recursos.The following example shows how to move several resources to a new resource group. En el parámetro --ids, ofrezca una lista separada por espacios de los identificadores de recurso que se van a trasladar.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 a una nueva suscripción, proporcione el parámetro --destination-subscription-id.To move to a new subscription, provide the --destination-subscription-id parameter.

Si se produce un error, consulte Troubleshoot moving Azure resources to new resource group or subscription (Solución de problemas del traslado de los recursos de Azure a una nueva suscripción o grupo de recursos).If you get an error, see Troubleshoot moving Azure resources to new resource group or subscription.

Use la API de RESTUse REST API

Para mover recursos existentes a otro grupo de recursos o a otra suscripción, use la operación 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}

En el cuerpo de la solicitud, especifique el grupo de recursos de destino y los recursos a 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>"
}

Si se produce un error, consulte Troubleshoot moving Azure resources to new resource group or subscription (Solución de problemas del traslado de los recursos de Azure a una nueva suscripción o grupo de recursos).If you get an error, see Troubleshoot moving Azure resources to new resource group or subscription.

Preguntas más frecuentesFrequently asked questions

Pregunta: La operación de movimiento de recursos, que normalmente tarda unos minutos, se ha ejecutado durante casi una hora. ¿Hay algo incorrecto?Question: My resource move operation, which usually takes a few minutes, has been running for almost an hour. Is there something wrong?

Mover un recurso es una operación compleja que tiene distintas fases.Moving a resource is a complex operation that has different phases. Pueden existir más implicaciones, además del proveedor de recursos del recurso que intenta mover.It can involve more than just the resource provider of the resource you're trying to move. Debido a las dependencias entre proveedores de recursos, Azure Resource Manager admite 4 horas para que se complete la operación.Because of the dependencies between resource providers, Azure Resource Manager allows 4 hours for the operation to complete. Este período de tiempo proporciona a los proveedores de recursos una oportunidad de recuperarse de problemas transitorios.This time period gives resource providers a chance to recover from transient issues. Si la solicitud de movimiento se encuentra dentro del período de 4 horas, la operación continúa intentando completar la ejecución, que puede ser correcta.If your move request is within the 4-hour period, the operation keeps trying to complete and may still succeed. Los grupos de recursos de origen y de destino se bloquean durante este tiempo para evitar problemas de coherencia.The source and destination resource groups are locked during this time to avoid consistency issues.

Pregunta: ¿Por qué mi grupo de recursos se bloquea durante 4 horas mientras se realiza el movimiento de recursos?Question: Why is my resource group locked for 4 hours during resource move?

La ventana de 4 horas es el tiempo máximo permitido para el movimiento de recursos.The 4-hour window is the maximum time allowed for resource move. Para evitar que se muevan las modificaciones de los recursos, los grupos de recursos de origen y de destino se bloquean mientras dura el movimiento de 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.

Hay dos fases en una solicitud de movimiento.There are two phases in a move request. En la primera fase, se mueve el recurso.In the first phase, the resource is moved. En la segunda fase, se envían notificaciones a otros proveedores de recursos que dependen del recurso que se está moviendo.In the second phase, notifications are sent to other resource providers that are dependent on the resource being moved. Un grupo de recursos puede bloquearse durante la ventana de 4 horas cuando se produce un error en un proveedor de recursos en cualquiera de las fases.A resource group can be locked for the entire 4-hour window when a resource provider fails either phase. Durante el tiempo permitido, Resource Manager reintenta el paso con el error.During the allowed time, Resource Manager retries the failed step.

Si un recurso no se puede mover dentro de la ventana de 4 horas, Resource Manager desbloquea ambos grupos de recursos.If a resource can't be moved within the 4-hour window, Resource Manager unlocks both resource groups. Los recursos que se movieron correctamente se encuentran en el grupo de recursos de destino.Resources that were successfully moved are in the destination resource group. Los recursos que no se pudieron mover se dejan en el grupo de recursos de origen.Resources that failed to move are left the source resource group.

Pregunta: ¿Cuáles son las implicaciones de que los grupos de recursos de origen y de destino se bloqueen durante el movimiento de recursos?Question: What are the implications of the source and destination resource groups being locked during the resource move?

El bloqueo le impide eliminar cualquier grupo de recursos, crear un nuevo recurso en cualquiera de los grupos de recursos o eliminar cualquiera de los recursos implicados en el movimiento.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.

En la siguiente imagen se muestra un mensaje de error de Azure Portal cuando un usuario intenta eliminar un grupo de recursos que forma parte de un movimiento en 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.

Mensaje de error de movimiento de intento de eliminación

Pregunta: ¿Qué significa el código de error "MissingMoveDependentResources"?Question: What does the error code "MissingMoveDependentResources" mean?

Al mover un recurso, sus recursos dependientes deben existir en el grupo de recursos o la suscripción de destino, o bien deben incluirse en la solicitud de movimiento.When moving a resource, its dependent resources must either exist in the destination resource group or subscription, or be included in the move request. Se recibe el código de error MissingMoveDependentResources cuando un recurso dependiente no cumple este requisito.You get the MissingMoveDependentResources error code when a dependent resource doesn't meet this requirement. El mensaje de error contiene detalles sobre el recurso dependiente que debe incluirse en la solicitud de movimiento.The error message has details about the dependent resource that needs to be included in the move request.

Por ejemplo, mover una máquina virtual podría requerir mover siete tipos de recursos con tres proveedores de recursos diferentes.For example, moving a virtual machine could require moving seven resource types with three different resource providers. Estos proveedores y tipos de recursos son:Those resource providers and types are:

  • Microsoft.ComputeMicrosoft.Compute

    • virtualMachinesvirtualMachines
    • disksdisks
  • Microsoft.NetworkMicrosoft.Network

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

    • storageAccountsstorageAccounts

Otro ejemplo común implica mover una red virtual.Another common example involves moving a virtual network. Es posible que tenga que mover varios recursos asociados a esa red virtual.You may have to move several other resources associated with that virtual network. La solicitud de movimiento podría requerir mover las direcciones IP públicas, las tablas de rutas, las puertas de enlace de red virtual, los grupos de seguridad de red y más.The move request could require moving public IP addresses, route tables, virtual network gateways, network security groups, and others.

Pregunta: ¿Por qué no puedo mover algunos recursos de Azure?Question: Why can't I move some resources in Azure?

Actualmente, no todos los recursos de Azure se pueden mover.Currently, not all resources in Azure support move. Para una lista de qué recursos son compatibles con el movimiento, consulte Compatibilidad con la operación de traslado para recursos.For a list of resources that support move, see Move operation support for resources.

Pasos siguientesNext steps

Para una lista de qué recursos son compatibles con el traslado, consulte Compatibilidad con la operación de traslado para recursos.For a list of which resources support move, see Move operation support for resources.