如何使用 InvokeRESTAPI@1 Azure DevOps 任务,并将 waitForCompletion 设置为 true?

问题描述 投票:0回答:1

我遇到了这个 Azure DevOps 任务:InvokeRESTAPI@1

有一个名为“waitForCompletion”的属性,旨在使无代理作业等待,直到收到来自外部服务的回调,然后再更新时间线记录。

不幸的是,微软文档中没有任何示例,我也没有找到任何相关的wiki或关于其用法的文章。

您能提供解释或参考吗?

azure-devops tfs azure-pipelines azure-devops-rest-api azure-pipelines-yaml
1个回答
0
投票

基于此文档: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 信号并检查任务是否成功或失败。

以下是您可以参考的资源:

文档:异步 Http 无代理任务

Repo 项目示例:HttpRequestSampleWithoutHandler

博客:通过团队集成和手动干预步骤控制 Azure DevOps 管道基于 YAML 的管道中的 HTTP 请求

© www.soinside.com 2019 - 2024. All rights reserved.