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 Resource Manager)。 預設值:connectedServiceName
。
指定要用來叫用 REST API 的服務連線類型。 選取 [Azure Resource Manager,針對所有其他 API 叫用 Azure 管理 API 或 一般。
serviceConnection
-
一般服務連線
輸入別名:connectedServiceName | genericService
。
string
。
connectedServiceNameSelector = connectedServiceName
時為必要項。
指定泛型服務連線,提供呼叫的baseUrl,以及用於工作的授權。
azureServiceConnection
-
Azure 訂用帳戶
輸入別名:connectedServiceNameARM | azureSubscription
。
string
。
connectedServiceNameSelector = connectedServiceNameARM
時為必要項。
指定要用來叫用 Azure 管理 API 的 Azure Resource Manager 訂用帳戶。
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 ResourceManagerEndpoint 叫用 Azure 管理 API。 例如,當訂用帳戶位於 AzureCloud 環境中時,會使用 https://management.azure.com
。
當 回呼 選擇為完成事件時,工作應該在何處發出完成訊號?
若要發出完成訊號,外部服務應該會將完成數據張貼到下列管線 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 要求的內容。
範例
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'')。
需求
要求 | 說明 |
---|---|
管線類型 | YAML、傳統組建、傳統版本 |
執行於 | Server、ServerGate |
需求 | 沒有 |
功能 | 此工作不符合作業中後續工作的任何需求。 |
命令限制 | 任意 |
Settable 變數 | 任意 |
代理程式版本 | 所有支援的代理程式版本。 |
工作類別 | 部署 |