我遇到了这个 Azure DevOps 任务:InvokeRESTAPI@1
有一个名为“waitForCompletion”的属性,旨在使无代理作业等待,直到收到来自外部服务的回调,然后再更新时间线记录。
不幸的是,微软文档中没有任何示例,我也没有找到任何相关的wiki或关于其用法的文章。
您能提供解释或参考吗?
基于此文档:InvokeRESTAPI@1 - 调用 REST API v1 任务
回调:当外部服务回调更新时间线记录时报告完成。
当你设置waitForCompletion为true(Callback)时,它会收集外部服务发送的完成信号。
因此需要在外部服务中添加以下Post回调:
{planUri}/{projectId}/_apis/distributedtask/hubs/{hubName}/plans/{planId}/events?api-version=2.0-preview.1
身体:
{ "name": "TaskCompleted", "taskId": "taskInstanceId", "jobId": "jobId", "result": "succeeded" }
您可以在 Invoke Rest API 任务中获取 URL 的参数值(例如 planUri):
最后,Invoke Rest API 将获取 TaskCompleted 信号并检查任务是否成功或失败。
以下是您可以参考的资源:
Repo 项目示例:HttpRequestSampleWithoutHandler