如何使用 Azure.Net SDK/ Fluent API 调整虚拟机磁盘大小

问题描述

我想调整操作系统磁盘空间的大小,但收到“仅在创建 VM 或释放 VM 时才允许调整磁盘大小。”

Microsoft.Azure.Management.ResourceManager.Fluent.Core.RestClient restClient = GetRestClient(requestObject);
            var computeClient = new ComputeManagementClient(restClient) { SubscriptionId = requestObject.SubscriptionId };
            var ObjVirtualMachines = computeClient.VirtualMachines.GetAsync(requestObject.ResourceGroupName,requestObject.VirtualMachineName,null,new System.Threading.CancellationToken()).Result;
            var disktodetach = ObjVirtualMachines.StorageProfile.Osdisk;
            ObjVirtualMachines.StorageProfile.Osdisk.diskSizeGB = requestObject.diskSize;
            var newUpdateVM = computeClient.VirtualMachines.CreateOrUpdateAsync(requestObject.ResourceGroupName,ObjVirtualMachines).Result;
            resizedisk = newUpdateVM.ProvisioningState;

解决方法

谢谢1_bug。发布您的建议作为答案以帮助其他社区成员。

您不能为正在运行的 VM 增加磁盘大小。相反,您可以通过关闭 VM 并执行以下代码来增加 VM 的磁盘大小。

[Newtonsoft.Json.JsonProperty(PropertyName="properties.diskSizeGB")]
public int? DiskSizeGB { get; set; }

enter image description here

在使用上述代码之前检查天气您的代码包括 creationData.creationoption 字段为空。

欲了解更多信息,请查看 Disk.DiskSizeGB Property

相关问答

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