我正在寻找使用适用于 Azure 的节点/Javascript SDK 来启动 VM。到目前为止,我的代码很幸运,它几乎可以按预期工作。但是,我想启动第 2 代/HyperV v2 虚拟机,而不是默认的 v1。这是我的代码片段:
return new Promise((resolve, reject) => {
let resourceClient = new ComputeManagementClient(credentials, azureSubscriptionID);
resourceClient.virtualMachines.createOrUpdate(reourceGroup, name, {
location: location,
osProfile: { computerName: name, adminUsername: 'admin', adminPassword: adminPassword, customData: Buffer.from(prepScript).toString('base64') },
hardwareProfile: { vmSize: 'Standard_B2s' },
HyperVGeneration: 'V2',
storageProfile: {
imageReference: { publisher: 'Canonical', offer: 'UbuntuServer', sku: '18.04-LTS', version: 'latest' },
osDisk: { name: name + '-disk', createOption: 'FromImage' }
},
networkProfile: {
networkInterfaces: [{ id: nic.id, primary: true }]
}
}, function (err, result) {
if (err) {
reject(err);
} else {
resolve(result);
}
});
}
我遇到的问题是:
HyperVGeneration: 'V2'
因为它似乎甚至不适用。我也没有收到任何错误,只是创建了一个 V1 虚拟机。Azure Docs 在这里有点缺乏:https ://docs.microsoft.com/en-us/javascript/api/@azure/arm-compute/hypervgeneration?view=azure-node-latest 我也尝试过其他的HyperVGenerationType / Types等参数具有相同的结果。