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, pero no que los recursos queden bloqueados.This lock means you can't add, update, or delete resources in the resource groups, but 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.

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've 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.

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.