InvokeRESTAPI@1 - 调用 REST API v1 任务
使用此任务将 REST API 作为管道的一部分调用。
语法
# Invoke REST API v1
# Invoke a REST API as a part of your pipeline.
- task: InvokeRESTAPI@1
inputs:
connectionType: 'connectedServiceName' # 'connectedServiceName' | 'connectedServiceNameARM'. Alias: connectedServiceNameSelector. Required. Connection type. Default: connectedServiceName.
serviceConnection: # string. Alias: connectedServiceName | genericService. Required when connectedServiceNameSelector = connectedServiceName. Generic service connection.
#azureServiceConnection: # string. Alias: connectedServiceNameARM | azureSubscription. Required when connectedServiceNameSelector = connectedServiceNameARM. Azure subscription.
method: 'POST' # 'OPTIONS' | 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'TRACE' | 'PATCH'. Required. Method. Default: POST.
#headers: # string. Headers.
#body: # string. Optional. Use when method != GET && method != HEAD. Body.
#urlSuffix: # string. URL suffix and parameters.
# Advanced
waitForCompletion: 'false' # 'true' | 'false'. Required. Completion event. Default: false.
#successCriteria: # string. Optional. Use when waitForCompletion = false. Success criteria.
输入
connectionType
-
连接类型
输入别名:connectedServiceNameSelector
。
string
。 必填。 允许的值:connectedServiceName
(泛型)、connectedServiceNameARM
(Azure 资源管理器)。 默认值:connectedServiceName
。
指定要用于调用 REST API 的服务连接类型。 选择 Azure 资源管理器,为所有其他 API 调用 Azure 管理 API 或 泛型。
serviceConnection
-
泛型服务连接
输入别名:connectedServiceName | genericService
。
string
。
connectedServiceNameSelector = connectedServiceName
时是必需的。
指定一般服务连接,该连接为调用提供 baseUrl,以及要用于任务的授权。
azureServiceConnection
-
Azure 订阅
输入别名:connectedServiceNameARM | azureSubscription
。
string
。
connectedServiceNameSelector = connectedServiceNameARM
时是必需的。
指定要配置和使用 Azure 管理 API 的 Azure 资源管理器订阅。
method
-
方法
string
。 必填。 允许的值:OPTIONS
、GET
、HEAD
、POST
、PUT
、DELETE
、TRACE
、PATCH
。 默认值:POST
。
指定调用 API 的 HTTP 方法。
headers
-
标头
string
。 默认值:{\n"Content-Type":"application/json", \n"PlanUrl": "$(system.CollectionUri)", \n"ProjectId": "$(system.TeamProjectId)", \n"HubName": "$(system.HostType)", \n"PlanId": "$(system.PlanId)", \n"JobId": "$(system.JobId)", \n"TimelineId": "$(system.TimelineId)", \n"TaskInstanceId": "$(system.TaskInstanceId)", \n"AuthToken": "$(system.AccessToken)"\n}
。
以 JSON 格式定义标头。 标头随发送到 API 的请求一起附加。
body
-
正文
string
。 可选。 当 method != GET && method != HEAD
时使用。
以 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 作为自动化管道的一部分,并且(可选)等待它完成。
有关使用此任务的详细信息,请参阅 审批和入口概述。
调用 Azure 管理 API 时使用哪些基本 URL?
使用所选环境的 ResourceManagerEndpoint 调用 Azure 管理 API。 例如,当订阅位于 AzureCloud 环境中时,将使用 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" }
此外,C# 帮助程序库可用于为无代理任务启用实时日志记录和管理任务状态。 了解详细信息
是否可以将响应正文用作另一个任务的输入?
否,因为此任务是无代理任务,并且使用 TFS 的内部 HttpRequest,它不会返回 HTTP 请求的内容。
示例
steps:
- task: InvokeRESTAPI@1
displayName: 'Invoke REST API: GET'
inputs:
serviceConnection: 'generic_demo'
method: GET
successCriteria: 'eq(root[''count''], ''1425'')'
在此示例中,当响应匹配 successCriteria
时,任务成功:eq(root[''count''], ''1425'')。