【问题标题】:Azure Virtual Machine creation issue using python使用 python 创建 Azure 虚拟机的问题
【发布时间】:2021-01-02 01:30:16
【问题描述】:

我正在使用 Python 创建 Azure VM,并且我正在使用以下自定义函数代码为特定区域以及特定 CPU 和内存选择 VM 大小。

def list_vm_sizes_eq_cpu_memory(compute_client, region, cores, memory_MB,prefix):
    vm_sizes_list = compute_client.virtual_machine_sizes.list(location=region)
    vm_lists=[]    
    for vm_size in vm_sizes_list:
        if vm_size.number_of_cores == int(cores) and vm_size.memory_in_mb == int(memory_MB):            
            vm_lists.append(vm_size)
    
    return vm_lists

上面的函数给了我虚拟机大小的列表,我选择最后一条记录作为最新的并使用这个大小创建虚拟机。

但我面临的问题是,通过使用大小有时会成功创建 VM,但有时会出现操作配置错误

还有高级磁盘和加速网络的问题。某些 VM 大小支持高级磁盘和加速网络

在使用 Python 创建 Azure VM 之前,有什么方法可以确定所有 VM 参数是否正确。

还有什么方法可以根据一个区域中的 CPU、内存、支持高级磁盘和支持加速网络来识别正确的 VM 大小,并且在使用 Python 创建 Azure VM 时不会出现任何错误。强>

提前致谢

【问题讨论】:

    标签: python azure virtual-machine azure-virtual-machine


    【解决方案1】:

    据我所知,高级磁盘和加速网络都只支持虚拟机大小,而不是全部。而virtual_machine_sizes 不能包含支持Premium Disk 和Accelerated Network 的消息。因此,我建议您可以创建两个列表来存储支持它们的所有 VM 大小,一个用于高级磁盘,一个用于加速网络。当您列出特殊区域中所有可用的 VM 大小时,您可以检查两个列表中是否存在可用大小,如果是,则将 VM 大小附加到您在上述代码中使用的 vm_lists 中。

    并且VM大小支持Premium Disk,您可以找到VM sizes并看到它是这样的:

    您可以获得支持加速网络 here 的 VM 大小。

    【讨论】:

    • 谢谢,Charles,但我面临的问题是我从代码中获得了 VM 大小,但是当我创建 VM 时,有时会创建它,有时不会,并且 python 没有提供正确的错误信息。在创建虚拟机之前需要知道我们是否可以提前找到所有配置对于创建虚拟机是否正确
    • @AmitKumar 你的意思是什么都正确?您认为 VM 有什么问题?
    • 我的意思是说,当我创建虚拟机时,我有时会得到虚拟机大小不支持高级磁盘,它不支持加速网络。我需要知道我是否收到我的 VM 配置不适合部署的信息,我可以修改然后使用 python 进行部署。
    • @AmitKumar 所以我建议你创建两个列表,包括所有支持高级磁盘和加速网络的 VM 大小,然后当你选择一个 VM 大小时,你可以检查它是否存在于两个列表中。
    猜你喜欢
    • 2017-01-02
    • 2019-05-10
    • 1970-01-01
    • 1970-01-01
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多