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. 必需。 允许的值:OPTIONSGET、、HEADPOSTPUTDELETETRACEPATCH。 默认值: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?

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

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

要发出完成信号,外部服务应将完成数据 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
需求
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任意
可设置变量 任意
代理版本 所有支持的代理版本。
任务类别 部署