如何在 Azure DevOps 中计划执行 Python 脚本(成功生成后)?



我有一个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。

  1. 将 B 的生成完成设置为 A,这样如果 A 第一次成功生成,B 将在此之后运行。

  2. 添加命令行任务或 PS 任务作为管道 A 的最后一个任务。此任务(修改 yml 然后推送更改(将负责将 B 对应的 xx.yml 文件更新到计划 B。

  3. 这样,如果 A(其他任务(构建成功,B(运行 python 脚本的管道(将执行。B将在成功构建后每天运行。

希望它有所帮助,如果我误解了什么,请随时纠正我。

相关内容

最新更新