我找不到任何选项来设置VM生成,默认为1,但我需要将其更改为2。
Azure门户创建磁盘
Disk managedDisk = azure.disks().define("myosdisk") .withRegion(Region.US_EAST2) .withExistingResourceGroup("test") .withWindowsFromVhd ("https://abcd.blob.core.windows.net/vm/‘laptop_vm’.vhd") .withSizeInGB(500).withSku(DiskSkuTypes.PREMIUM_LRS).create();
您可以使用hyperVGeneration
集合函数。虚拟机的虚拟机监控程序生成。仅适用于操作系统磁盘。可能的值包括:"V1"、"V2">
可能呼叫withHyperVGeneration('V2');
有关详细信息,请查看azure-sdk-java实现。
您需要导入mgmt.compute
库。它可以在下面的maven工件中找到。
<dependency>
<groupId>com.azure.resourcemanager</groupId>
<artifactId>azure-resourcemanager</artifactId>
<version>2.5.0</version>
</dependency>
您可以将磁盘创建称为
List<String> diskNames = Arrays.asList("myosdisk", "myosdisk2");
List<Creatable<Disk>> creatableDisks = diskNames.stream()
.map(diskName -> azure.disks()
.define(diskName)
.withRegion(Region.US_EAST2)
.withExistingResourceGroup("test")
.withWindowsFromVhd ("https://abcd.blob.core.windows.net/vm/‘laptop_vm’.vhd")
.withHyperVGeneration('V2')
.withData()
.withSizeInGB(500)
.withSku(DiskSkuTypes.PREMIUM_LRS)
.collect(Collectors.toList());
Collection<Disk> disks = azure.disks().create(creatableDisks).values();
azure.disks().deleteByIds(disks.stream().map(Disk::id).collect(Collectors.toList()));
更多信息可以在Github Azure/Azure-sdk for java存储库中找到。
这是我找到的解决方法,创建磁盘后,我只是将磁盘更新为HyperVGeneration.V2
Disk managedDisk = azure.disks().define("myosdisk")
.withRegion(Region.US_EAST2)
.withExistingResourceGroup("umbc")
.withWindowsFromVhd("https://abcd.blob.core.windows.net
/vmimages/‘laptop_vm’.vhd")
.withStorageAccountName("abcd")
.withSku(DiskSkuTypes.PREMIUM_LRS)
.create();
managedDisk.inner().withHyperVGeneration(HyperVGeneration.V2);
managedDisk.update().apply();