使用 python 从 azure 函数触发 Azure Devops 管道

Trigger an Azure Devops pipeline from an azure function using python

我有一个现有的 DevOps 管道来训练 ML 模型。为了保证模型的稳健性,有必要定期对其进行重新训练。为此,我决定创建一个每月执行一次的 Azure 函数。它将收集新数据,应用数据预处理并最终触发 Azure Devops 培训管道。这一切都必须用python来完成。 通过研究,我了解到这可以使用 REST Azure Devops API 请求来完成。 我创建了这个 python git 存储库 https://github.com/microsoft/azure-devops-python-api,它提供了一个 API 来与 Azure DevOps 通信。我执行了这个包提供的代码,它显示了我的 devops 项目列表。但我找不到如何触发管道。 假设我的组织名为 ORGA1,项目名为 PROJ1,我要执行的管道名为 PIPELINE1,我如何使用 Azure 函数甚至简单的 python 脚本启动它? PS:我正在使用 python 3.9 Timer Trigger Azure 函数。 预先感谢您的帮助。

编辑

我厌倦了使用 LOGIC APP 来执行此操作,就像评论中描述的 @mohammed 一样,我认为这是一个很好的解决方案。在我创建的工作流程上方:

所以我每 X 小时启动一次逻辑应用程序,这将触发 azure Devops,ASA 它以成功结束训练,它会给我发一封电子邮件。 我这里有一个错误,就是我正在创建一个 新版本 而不是每次都触发特定的管道。但是在 devops 服务下的不同操作中导航,我找不到任何与启动 devops 管道相关的东西。谁能知道怎么做。

您可以使用带有计时器的逻辑应用程序来触发您的 DevOps 管道而不是 Azure 函数,因为它具有与您的 DevOps 交互所需的所有内置连接器。参见:https://www.serverlessnotes.com/docs/keep-your-team-connected-using-azure-devops-and-azure-logic-apps

您可以尝试使用 Azure Durable Functions,您可以在某种程度上复制逻辑应用程序的功能,同时仍然使用 Azure Functions。请在此处查看文档 1

感谢@Mohammed 提供的提示,我找到了解决方案。 Logic App 提供了我正在寻找的东西。在 Logic App 提供的 Devops 连接器列表下,有一个名为 Queue a new build 的连接器,这正是我要找的。这是我的第一个实验架构,稍后我将通过在调用 Devops Pipeline 之前添加 Azure Function 服务来更新它。