如何使用Azure Python SDK v2获取至少完成一个成功作业的AzureML计划
使用Azure Python SDK v2检索AzureML中已触发且至少有一个作业成功的计划
前置准备
- 安装AzureML SDK v2:
pip install azure-ai-ml - 完成Azure身份认证(可通过
az login命令或服务主体方式)
代码实现
from azure.ai.ml import MLClient from azure.identity import DefaultAzureCredential # 初始化工作区客户端 ml_client = MLClient( credential=DefaultAzureCredential(), subscription_id="你的订阅ID", resource_group_name="你的资源组名称", workspace_name="你的工作区名称" ) # 获取工作区内所有计划 all_schedules = ml_client.schedules.list() qualified_schedules = [] for schedule in all_schedules: # 跳过未正常部署的计划 if schedule.provisioning_state != "Succeeded": continue # 获取该计划触发的所有作业实例 job_runs = ml_client.jobs.list(parent_name=schedule.name, parent_type="schedule") # 检查是否存在成功完成的作业 has_successful_run = any(job.status == "Completed" for job in job_runs) if has_successful_run: qualified_schedules.append(schedule) # 输出结果 print("已触发且至少有一个作业成功的计划:") for sched in qualified_schedules: print(f"名称: {sched.name}, 触发类型: {sched.trigger.type}, 最后修改时间: {sched.last_modified_at}")
关键说明
ml_client.schedules.list():枚举工作区中所有计划资源- 过滤
provisioning_state为Succeeded的计划,确保计划已正常配置并可触发 - 通过
parent_name和parent_type参数关联计划与它触发的作业,获取所有执行历史 - 作业状态
Completed代表成功完成,若需包含其他成功状态(如Succeeded,依AzureML配置而定)可调整判断条件
内容的提问来源于stack exchange,提问作者Jau A
相关产品推荐
相关产品推荐

