You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过AzureML Python SDK v2避免计划管道创建后立即触发

解决AzureML管道关联计划后立即运行的问题(SDK v2)

可以通过Python SDK v2实现,核心是通过创建Schedule对象绑定管道与计划,而非直接提交管道作业,同时合理配置触发器的启动时间,避免即时执行。

具体步骤与代码示例

  1. 导入依赖模块
from azure.ai.ml import MLClient, PipelineJob
from azure.ai.ml.entities import Schedule, RecurrenceTrigger, RecurrencePattern
from azure.identity import DefaultAzureCredential
from datetime import datetime, timedelta
  1. 初始化ML客户端
ml_client = MLClient(
    DefaultAzureCredential(),
    subscription_id="你的订阅ID",
    resource_group_name="你的资源组名",
    workspace_name="你的工作区名"
)
  1. 加载或定义管道作业
    假设你已经通过YAML文件或代码构建好了管道作业:
# 从本地YAML加载管道定义
pipeline_job = ml_client.jobs.load("path/to/your/pipeline.yaml")
  1. 配置 recurrence 触发器
    设置计划的重复规则,并将start_time指定为未来的时间点(比如当前时间1小时后),确保首次运行不会立即触发:
# 计算首次运行时间:当前UTC时间+1小时
start_time = datetime.utcnow() + timedelta(hours=1)

# 定义每日运行的触发器
recurrence_trigger = RecurrenceTrigger(
    frequency="day",
    interval=1,  # 每1天运行一次
    start_time=start_time,
    time_zone="UTC"  # 根据你的需求调整时区
)
  1. 创建计划并绑定管道
    通过Schedule对象关联管道与触发器,调用创建接口后,管道只会按设定的计划时间运行,不会立即执行:
schedule = Schedule(
    name="daily-pipeline-schedule",
    display_name="每日管道调度",
    job=pipeline_job,
    trigger=recurrence_trigger
)

# 创建计划,此操作不会触发管道即时运行
ml_client.schedules.create_or_update(schedule)

关键注意点

  • 不要直接调用ml_client.jobs.submit(pipeline_job),该方法会立即触发管道运行,与计划无关。
  • start_time必须是未来的时间(UTC或指定时区),否则计划会立即执行首次运行。
  • 如果需要修改已存在的计划,同样通过ml_client.schedules.create_or_update()更新触发器的start_time参数即可。

内容的提问来源于stack exchange,提问作者Jau A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 06:33:09