我有一个Azure Pipeline Build。*.yaml 文件正确执行 Python 脚本 (PythonScript@0
(。此脚本本身创建(如果不存在(、执行和发布 Azure ML 管道。当手动执行构建或由提交触发时,它运行良好。
但我想每天安排 ML 管道(Python 脚本(的自动执行。
我尝试了以下方法:
pipeline_id = published_pipeline.id
recurrence = ScheduleRecurrence(frequency="Day", interval=1)
recurring_schedule = Schedule.create(ws,
name=<schedule_name>,
description="Title",
pipeline_id=pipeline_id,
experiment_name=<experiment_name>,
recurrence=recurrence)
在这种情况下,管道在 3-4 秒内运行并成功终止。但是,不会执行 Python 脚本。
此外,我尝试使用 Build 计划管道的执行,但我认为这是一种错误的方法。它重建了一个管道,但我需要执行以前发布的管道。
schedules:
- cron: "0 0 * * *"
displayName: Daily build
always: true
如何每天执行已发布的管道?我应该使用发布(哪些代理,哪些任务?
另外,我尝试使用 Build 计划管道的执行,但是 我认为这是一种错误的方法。它重建了一个管道,但我 需要执行以前发布的管道。
假设你的 python 相关任务在许多其他任务之后运行,那么不建议简单地调度整个构建管道,它会重新运行管道(其他任务 + python 脚本(。
只能调度管道而不是任务,所以我建议你可以创建一个新的构建管道来运行 python 脚本。此外,专用代理更适合这种情况。
现在我们得到了两个管道:用于运行 python 脚本的原始 A 和 B。
-
将 B 的生成完成设置为 A,这样如果 A 第一次成功生成,B 将在此之后运行。
-
添加命令行任务或 PS 任务作为管道 A 的最后一个任务。此任务(修改 yml 然后推送更改(将负责将 B 对应的 xx.yml 文件更新到计划 B。
-
这样,如果 A(其他任务(构建成功,B(运行 python 脚本的管道(将执行。B将在成功构建后每天运行。
希望它有所帮助,如果我误解了什么,请随时纠正我。