有没有办法使用Azure SDK创建第2代虚拟机?
Azure通过第2代虚拟机支持UEFI 我可以使用Azure web控制台创建Generation2虚拟机,但无法通过Azure SDK指定虚拟机的生成方式 我在Microsoft文档中找到了使用PowerCLI创建管理磁盘的链接有没有办法使用Azure SDK创建第2代虚拟机?,azure,Azure,Azure通过第2代虚拟机支持UEFI 我可以使用Azure web控制台创建Generation2虚拟机,但无法通过Azure SDK指定虚拟机的生成方式 我在Microsoft文档中找到了使用PowerCLI创建管理磁盘的链接 我查阅了Azure ComputeClient#虚拟机#创建或更新()api的在线文档。但是在python代码文档中仍然找不到任何方法来指定虚拟机的HyperVGenerations。是。这有点违反直觉,但它是这样的:您需要指定磁盘上的VM生成;那么,用这个磁盘创建
我查阅了Azure ComputeClient#虚拟机#创建或更新()api的在线文档。但是在python代码文档中仍然找不到任何方法来指定虚拟机的HyperVGenerations。是。这有点违反直觉,但它是这样的:您需要指定磁盘上的VM生成;那么,用这个磁盘创建的虚拟机将是同一代 如果您已经拥有gen2磁盘,那么您只需在创建VM时选择并指定它即可。但是,我必须从VHD文件创建磁盘。因此,在创建磁盘时,需要一个
IWithCreate
实例,然后使用HypervGeneration方法链接对的调用。像这样(C#):
公共异步任务MakeDisk(字符串路径)
{
return wait Azure.Disks.Define(名称)
.WithRegion(Region.EuropeWest)
.使用现有资源组(“我的资源”)
.WithWindowsFromVhd(vhdPath)
.使用存储帐户(“saname”)
.WithHyperVGeneration(HyperVGeneration.V2)/是的。这有点违反直觉,但它是这样的:您需要在磁盘上指定VM生成;然后在此磁盘上创建的VM将属于同一代
如果您已经有gen2的磁盘,那么您只需在创建VM时选择它并指定它。但是,我必须从VHD文件创建磁盘。因此,当您创建磁盘时,您需要一个IWithCreate
实例,然后通过HypervGeneration
方法链接调用。如下(C#):
公共异步任务MakeDisk(字符串路径)
{
return wait Azure.Disks.Define(名称)
.WithRegion(Region.EuropeWest)
.使用现有资源组(“我的资源”)
.WithWindowsFromVhd(vhdPath)
.使用存储帐户(“saname”)
.WithHyperVGeneration(HyperVGeneration.V2)//谢谢。这很有效。我使用Python SDK验证了这一点。谢谢。这很有效。我使用Python SDK验证了这一点
public async Task<IDisk> MakeDisk(string vhdPath)
{
return await Azure.Disks.Define(name)
.WithRegion(Region.EuropeWest)
.WithExistingResourceGroup("my-resources")
.WithWindowsFromVhd(vhdPath)
.WithStorageAccount("saname")
.WithHyperVGeneration(HyperVGeneration.V2) // <--- This is how you specify the generation
.WithSku(DiskSkuTypes.PremiumLRS)
.CreateAsync();
}
var osDisk = await MakeDisk("template.vhd");
var vm = await Azure.VirtualMachines.Define("template-vm")
.WithRegion(Region.EuropWest)
.WithExistingResourceGroup("the-rg")
.WithExistingPrimaryNetworkInterface("some-nic")
.WithSpecializedOSDisk(osDisk, OperatingSystemTypes.Windows) // <-- Pay attention
.WithSize(VirtualMachineSizeTypes.StandardB2s)
.CreateAsync();