Azure DevOps服务器任务:多HTTP请求+外部等待实现问询
Azure DevOps服务器任务:单任务实现多HTTP请求+外部事件等待方案
需求说明
我正在开发Azure DevOps扩展,需要创建一个服务器任务,实现两个核心功能:执行多个HTTP请求,同时等待外部源的完成事件。这个任务是为了实现管道任意节点的指定人员审批——和ManualValidation任务(不限审批人权限)、阶段准入审批(仅支持阶段起始点)都不同,而且计划作为公开扩展发布,所以必须做成单任务方案来提升易用性。
已尝试的无效方案
- 在HttpRequestChain的最后一个RequestInputs里加
"WaitForCompletion": "true":没效果,后来得知这个选项目前不支持HttpRequestChain类型的任务 - 拆分任务为prejobexecution(执行多请求)和execution(带等待的HttpRequest)两部分:prejobexecution在管道运行中完全没生效,推测服务器任务不支持这个字段
可行的单任务实现方法
不用依赖内置的HttpRequestChain,改用自定义脚本型服务器任务:
- 任务配置里,将
execution类型设为Node,指定自定义的Node.js脚本路径 - 脚本里先完成所有需要的HTTP请求(可以用axios、node-fetch这类库实现批量请求)
- 实现等待逻辑:通过轮询外部源的状态接口,或者监听webhook事件(如果外部源支持),直到检测到完成事件再结束脚本
- 在任务的
task.json里配置"WaitForCompletion": "true",确保任务会等待脚本执行完成再继续管道
关于官方文档的说明
目前Azure DevOps服务器任务没有完整的官方文档,只能依赖公开的任务库schema和官方示例仓库里的代码来摸索,你之前参考的那两个资源已经是目前能找到的最权威的官方相关资料了。
内容的提问来源于stack exchange,提问作者Ruyan
相关产品推荐
相关产品推荐

