我正在尝试使用自定义VM映像的.net的Azure资源管理库创建模板部署。可以通过使用上述库创建资源组并部署所需资源(使用模板文件)来实现目标。需要在删除资源组时还需要删除在资源组中创建VM时创建的Vhd。但是如果我删除资源组,vhd文件不会被删除,因为它是在不同的资源组中创建的(因此存在vm图像的存储帐户不同),并且事实上自定义vm图像需要在创建时出现在将托管虚拟机vhd的存储帐户。我无法删除包含自定义图像的存储帐户。那么,有没有办法可以使用.Net的资源管理库将自定义映像(vhd)从存储帐户复制到我新创建的资源组的存储帐户? 或者是否有任何其他解决方法来删除已创建的vm的vhd而不删除自定义vm图像??
答案 0 :(得分:1)
使用 Microsoft Azure存储资源管理器
从
复制/粘贴VHD存储帐户A \ Blob容器\上传
到
存储帐户B \ Blob容器\上传
答案 1 :(得分:0)
在模板部署期间没有任何方法可以复制blob,目前存储资源提供的模板部署期间不支持数据平面操作。您可以将其分解为多个部署,例如:
但是 - 如果您通过代码执行此操作,可能最简单的方法是在删除保存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?您想要为其附加不同的磁盘吗?