确定在 Azure 资源组之间移动资源的步骤
本单元将介绍在资源组之间移动资源可能需要采取的步骤以及可使用的工具。
了解资源移动
开始移动操作时,保存资源的资源组和新的目标资源组会被锁定。 在移动操作结束前,无法对资源组执行写入或删除操作。 资源不会受到影响,但无法添加、删除或更新这些资源组中的任何资源。
移动的资源不会更改位置。 例如,如果在美国东部区域拥有一个存储帐户,然后将其移至另一个资源组,则该帐户保留其在美国东部区域的位置。
在订阅之间移动资源
根据资源类型,可以在订阅之间或同一订阅内的资源组之间移动资源。
对于我们的方案,我们只需将一对存储帐户移至同一订阅中的其他资源组。 如果出于计费原因,我们需要将 Azure Web 应用及其所有依赖资源移动到其他订阅,则移动过程可能还会涉及到其他步骤。 如第 2 单元所述,需要将所有从属资源移至一个资源组。 然后,可将这些资源移至其他订阅下的新资源组中。 以下示意图显示可能需要执行的步骤。 此示例包括在单独的资源组中具有一个从属资源的资源。
- 将从属资源随资源移至一个资源组中。
- 将资源和从属资源从源订阅中一起移至目标订阅。
- 如果需要,请将从属资源重新分发到目标订阅中的其他资源组。
如何移动资源
确定要移动的资源并确认它们可移动之后, 你可以创建一个资源组,并将资源移动到该资源组中。
可使用 Azure 门户、Azure CLI、PowerShell 或 Azure REST API 来移动资源。 在下一单元,你将使用 Azure 门户将存储帐户移动到新资源组。 因此,在本单元,让我们了解要使用哪些命令通过 Azure CLI 或 PowerShell 移动资源。
使用 Azure CLI 移动资源
以下命令显示如何使用 Azure CLI 移动资源。
创建资源组。
az group create --name <destination resource group name> --location <location name>
获取资源。
yourResource=$(az resource show --resource-group <resource group name> --name <resource name> --resource-type <resource type> --query id --output tsv)
使用资源 ID 将资源移至另一个资源组。
az resource move --destination-group <destination resource group name> --ids $yourResource
返回资源组中的所有资源,以验证并确保资源已移动。
az resource list --resource-group <destination resource group name> --query [].type --output tsv | uniq
在引用资源的所有工具和脚本中更新资源 ID。
使用 Azure PowerShell 移动资源
以下命令显示如何使用 Azure PowerShell 移动资源。
创建资源组。
New-AzResourceGroup -Name <destination resource group name> -Location <location name>
获取资源。
$yourResource = Get-AzResource -ResourceGroupName <resource group name> -ResourceName <resource name>
使用资源 ID 将资源移至另一个资源组。
Move-AzResource -DestinationResourceGroupName <destination resource group name> -ResourceId $yourResource.ResourceId
返回资源组中的所有资源,以验证并确保资源已移动。
Get-AzResource -ResourceGroupName <destination resource group name> | ft
在引用资源的所有工具和脚本中更新资源 ID。