如何从AzureML获取运行中VM(计算实例)列表及运行时长
问题:列出AzureML中运行的Compute Instance状态及运行时长
我是Python和AzureML的新手,当前任务是列出所有运行中的VM(或Compute Instances)的状态,以及(若处于运行状态)的运行时长。我已成功连接AzureML并列出订阅、资源组和工作区,但在获取运行中VM列表时遇到瓶颈。
以下是我当前的代码:
# get subscriptions list using credentials subscription_client = SubscriptionClient(credentials) sub_list = subscription_client.subscriptions.list() print("Subscription ID".ljust(column_width) + "Display name") print(separator) for group in list(sub_list): print(f'{group.subscription_id:<{column_width}}{group.display_name}') subscription_id = group.subscription_id resource_client = ResourceManagementClient(credentials, subscription_id) group_list = resource_client.resource_groups.list() print(" Resource Groups:") for group in list(group_list): print(f" {group.name}{group.location}") print(" Workspaces:") my_ml_client = Workspace.list(subscription_id, credentials, group.name) for ws in list(my_ml_client): try: print(f" {ws}") if ws: compute = ComputeTarget(workspace=ws, name=group.name) print('Found existing compute: ' + group.name) except: pass
请注意,这更多是学习练习,代码并非最终版本,能运行后我会重构。
编辑1:找到简便方法
workspace = Workspace( subscription_id=subscription_id, resource_group=group.name, workspace_name=ws, ) print(workspace.compute_targets)
编辑2:筛选仅获取Compute Instance
如果有像我一样刚接触Python+Azure的人看到这个问题,所有信息均来自官方文档(对新手而言较难理解)。workspace.compute_targets的结果包含Compute Instances和AML计算集群,若只需获取VM类型的Compute Instance,需额外进行筛选,代码如下:
if type(compute_list[vm]) == ComputeInstance:
内容的提问来源于stack exchange,提问作者Vlad Eugen Nitu
相关产品推荐
相关产品推荐

