如何仅通过使用Terraform将Azure磁盘从一个位置复制到另一位置

问题描述

面临的挑战是要有一种方法,可以将osdisk和数据磁盘从位于第一个位置的vm复制到另一个,然后在那里产生一个新的虚拟机。

到目前为止,我发现了disks-upload-vhd-to-managed-disk-cli文章,并且能够通过使用azcopy实用程序并创建sas uri链接在不同位置之间复制磁盘。

当我到处使用terraform时,我不喜欢使用外部工具来完成这项工作。

我尝试已经滥用azurerm_managed_disk才能将磁盘的副本复制到另一个位置,但是它暗示不可能,而且这些磁盘必须放在同一位置。

因此,也许有些人知道如何仅通过terraform方式在不同位置制作这样的磁盘(或整个vm)副本,当然,我这里并不是要使用local-exec在其中包装azcopy: )

最好的问候。

解决方法

要将复制的磁盘复制到另一个区域(AzCopy命令除外),您只能将具有生成的SAS URL的磁盘复制到另一个区域的存储页面blob中。然后从该存储Blob中的VHD文件创建托管磁盘。

此处的步骤:

  1. 导出要复制的磁盘,然后它将生成SAS URL;
  2. 在存储容器中创建一个存储页面Blob,该存储页面位于SAS URL的目标区域中;
  3. 从同一区域中的页面Blob创建托管磁盘。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...