InvokeRESTAPI@0 - 调用 REST API v0 任务

使用此任务将 REST API 作为管道的一部分调用。

语法

# Invoke REST API v0
# Invoke REST API as a part of your process.
- task: InvokeRESTAPI@0
  inputs:
    serviceConnection: # string. Alias: connectedServiceName. Required. Generic endpoint. 
    method: 'POST' # 'OPTIONS' | 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'TRACE' | 'PATCH'. Required. Method. Default: POST.
    #headers: # string. Headers. 
    #body: '{"JobId": "$(system.jobId)", "PlanId": "$(system.planId)", "TimelineId": "$(system.timelineId)", "ProjectId": "$(system.teamProjectId)", "VstsUrl": "$(system.CollectionUri)","AuthToken": "$(system.AccessToken)"}' # string. Optional. Use when method != GET && method != HEAD. Body. Default: {"JobId": "$(system.jobId)", "PlanId": "$(system.planId)", "TimelineId": "$(system.timelineId)", "ProjectId": "$(system.teamProjectId)", "VstsUrl": "$(system.CollectionUri)","AuthToken": "$(system.AccessToken)"}.
    #urlSuffix: # string. Url suffix string. 
  # Completion Options
    waitForCompletion: 'false' # 'true' | 'false'. Required. Complete based on. Default: false.
    #successCriteria: # string. Optional. Use when waitForCompletion = false. Success criteria.

输入

serviceConnection - 泛型终结点
输入别名:connectedServiceNamestring。 必填。

指定为调用提供 baseURL 的泛型服务连接以及要用于任务的授权。


method - 方法
string。 必填。 允许的值:OPTIONSGETHEADPOSTPUTDELETETRACEPATCH。 默认值:POST

指定调用 API 的 HTTP 方法。


headers - 标头
string。 默认值:{\n"Content-Type":"application/json"\n}

以 JSON 格式定义标头。 标头随发送到 API 的请求一起附加。


body - 正文
string。 可选。 当 method != GET && method != HEAD时使用。 默认值:{"JobId": "$(system.jobId)", "PlanId": "$(system.planId)", "TimelineId": "$(system.timelineId)", "ProjectId": "$(system.teamProjectId)", "VstsUrl": "$(system.CollectionUri)","AuthToken": "$(system.AccessToken)"}

以 JSON 格式指定函数调用的请求正文。


urlSuffix - URL 后缀字符串
string

指定要在进行 HTTP 调用时从泛型服务连接追加到 baseUrl 的字符串。

示例:如果服务连接 URL https:...TestProj/_apis/Release/releases,URL 后缀为 /2/environments/1,则服务连接 URL 将变为 https:.../TestProj/_apis/Release/releases/2/environments/1。 如果 URL 后缀 ?definitionId=1&releaseCount=1,则服务连接 URL 将变为 https//...TestProj/_apis/Release/releases?definitionId=1&releaseCount=1


基于完成 waitForCompletion -
string。 必填。 允许的值:true(回调)、false(ApiResponse)。 默认值:false

指定任务报告完成的方式。 允许的值为:

  • false - API 响应:当函数在 20 秒内返回成功时报告完成情况,成功条件的计算结果为 true。
  • true - 回调:当外部服务进行回调以更新时间线记录时报告完成情况。

successCriteria - 成功条件
string。 可选。 当 waitForCompletion = false时使用。

指定任务的成功条件。 如果未定义任何条件,则响应内容不会影响结果。 默认情况下,任务在调用返回 200 OK时传递。

示例:对于响应 {"status" : "successful"},表达式可以 eq(root['status'], 'successful')。 详细了解如何 指定条件


任务控制选项

除任务输入之外,所有任务都具有控制选项。 有关详细信息,请参阅 控件选项和常见任务属性

输出变量

没有。

注解

注释

此任务只能在 无代理作业中使用。

如果 API 返回成功且响应正文分析成功,或者 API 成功更新时间线记录,则成功。

调用 REST API 任务 不直接执行部署作。 相反,它允许你调用任何通用 HTTP REST API 作为自动化管道的一部分,并且(可选)等待它完成。

配置调用 REST API 任务

有关使用此任务的详细信息,请参阅 审批和入口概述

调用 Azure 管理 API 时使用哪些基本 URL?

使用所选环境的 ResourceManagerEndpoint 调用 Azure 管理 API。 例如,当订阅位于 https://management.Azure.com 环境中时,将使用

回调 被选为完成事件时,任务应在哪里发出信号完成?

若要发出完成信号,外部服务应将完成数据 POST 到以下管道 REST 终结点。

{planUri}/{projectId}/_apis/distributedtask/hubs/{hubName}/plans/{planId}/events?api-version=2.0-preview.1

**Request Body**
 { "name": "TaskCompleted", "taskId": "taskInstanceId", "jobId": "jobId", "result": "succeeded" }

有关详细信息,请参阅此简单的 cmdline 应用程序

此外,C# 帮助程序库可用于为无代理任务启用实时日志记录和管理任务状态。 了解详细信息

是否可以将响应正文用作另一个任务的输入?

否,因为此任务是无代理任务,并且使用 TFS 的内部 HttpRequest,它不会返回 HTTP 请求的内容。

要求

要求 说明
管道类型 YAML,经典版本,经典版本
运行时间 Server、ServerGate
需求 没有
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任何
Settable 变量 任何
代理版本 所有支持的代理版本。
任务类别 部署