我正在尝试将资源组(包含具有其依赖资源的VM,例如网络接口等)移动到新的订阅和资源组。 (如果通过GUI完成,移动工作正常)
我的剧本:
foreach ($resource in $resources) {Move-AzureRmResource
-DestinationResourceGroupName "newresourcegroup" -ResourceId $resource.resourceID -DestinationSubscriptionId 123456}
失败了
Move-AzureRmResource: { “错误”:{ “代码”: “ResourceMoveProviderValidationFailed”, “消息”:“资源 移动验证失败。请看细节。诊断信息: 时间戳
等...
“移动资源请求不包含所有依赖项 资源。请检查缺少资源的错误详细信息 IDS \ “}],\” 代码\ “:\” MissingMoveDependentResources \ “\ ”消息\“:\” 的 移动资源请求不包含所有依赖资源。 请检查缺少资源的错误详细信息 IDS \ “}}”},{ “目标”:“Microsoft.Network/networkInterfaces","message":"{\"error\":{\"code\":\"MissingMoveDependentResources\",\"message \ “:\” 的 移动资源请求不包含所有依赖资源。 请查看缺少资源ID的详细信息
显然,我需要以某种方式指定依赖资源,但似乎没有针对Move-AzureRmResource模块的“依赖资源”的参数。
一个。如何确定依赖资源是什么?
湾如何在移动cmdlet中指定它们?
答案 0 :(得分:1)
移动资源请求不包含所有相关资源
根据您的脚本,您似乎只是遍历资源并将它们逐个移动到新订阅中的另一个资源组。但是正如我们所知,某些资源可能有一些依赖资源,要移动这种类型的资源(如虚拟机等),我们应该确保我们也移动所有依赖资源,否则移动操作将失败。
在移动服务之前,我们需要知道what services that enable move and limitations。此外,请参阅Use Powershell to move a VM以了解如何移动需要相关资源的资源。
答案 1 :(得分:0)
我要补充一点,要移至新订阅,需要同时移动从属资源。这需要首先在同一个RG中组织资源(无论如何,此时还是如此),然后移动操作才能成功。如果您只是在RG之间移动资源,那么您可以进行移动而无需在RG中进行重组。请记住,您可能有一些VM扩展是隐藏的对象,这些对象可能会失败,并且在移动之前和之后都需要解决Azure备份之类的问题。
-DestinationSubscriptionId $AzureTargetSubscription.SubscriptionId
移动
-ResourceId $ Ids.ResourceID“