将自定义VM映像从一个资源组复制到另一个(在同一订阅中)

时间:2016-04-08 15:16:51

标签: azure azure-resource-manager azure-sdk-.net

我正在尝试使用自定义VM映像的.net的Azure资源管理库创建模板部署。可以通过使用上述库创建资源组并部署所需资源(使用模板文件)来实现目标。需要在删除资源组时还需要删除在资源组中创建VM时创建的Vhd。但是如果我删除资源组,vhd文件不会被删除,因为它是在不同的资源组中创建的(因此存在vm图像的存储帐户不同),并且事实上自定义vm图像需要在创建时出现在将托管虚拟机vhd的存储帐户。我无法删除包含自定义图像的存储帐户。那么,有没有办法可以使用.Net的资源管理库将自定义映像(vhd)从存储帐户复制到我新创建的资源组的存储帐户? 或者是否有任何其他解决方法来删除已创建的vm的vhd而不删除自定义vm图像??

3 个答案:

答案 0 :(得分:1)

使用 Microsoft Azure存储资源管理器

复制/粘贴VHD

存储帐户A \ Blob容器\上传

存储帐户B \ Blob容器\上传

答案 1 :(得分:0)

在模板部署期间没有任何方法可以复制blob,目前存储资源提供的模板部署期间不支持数据平面操作。您可以将其分解为多个部署,例如:

  1. 将新VM的存储帐户部署到新资源组
  2. 运行代码以将VHD的自定义映像复制到新资源组中的新存储帐户
  3. 将VM部署到新资源组
  4. 但是 - 如果您通过代码执行此操作,可能最简单的方法是在删除保存VM的资源组之前获取操作系统的VHD的URI。然后删除该RG后,删除该blob。此PowerShell代码将为您提供VM的vhd blob的uri(.net SDK将类似)。

    _id

    如果RG中有多个VM,那么您将获得一个数组并且可以迭代它。

答案 2 :(得分:0)

另一种可行的解决方法是将vhd文件从存储帐户下载到本地文件系统,删除容器或存储帐户,这是您想要的。然后将本地系统上的此vhd文件推送到您新创建的Azure存储帐户,

Add-azureRmVhd -Destination 'newstorageaccounturi' -LocalFilePath 'C:\users....\' -NumberOfUploaderThreads 5

虽然,我不明白你为什么要删除这个创建vm的vhd?您想要为其附加不同的磁盘吗?