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 サフィックスが の場合、サービス接続 URL は /2/environments/1になります 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 Management API を呼び出すときに使用される基本 URL は何ですか?

Azure management API は、選択した環境の ResourceManagerEndpoint を使用して呼び出されます。 たとえば https://management.Azure.com 、サブスクリプションが AzureCloud 環境にある場合に使用されます。

完了イベントとしてコールバックが選択されている場合、タスクはどこで完了を通知する必要がありますか?

完了を通知するには、外部サービスで完了データを次のパイプライン REST エンドポイントに POST する必要があります。

{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# ヘルパー ライブラリを利用して、エージェントレス タスクのライブ ログ記録とタスク状態の管理を有効にすることができます。 詳細情報

応答本文を別のタスクの入力として使用できますか?

いいえ。このタスクはエージェントレス タスクであり、HTTP 要求の内容を返さない TFS の内部 HttpRequest を使用します。

要件

要件 説明
パイプラインの種類 YAML、クラシック ビルド、クラシック リリース
上で実行 Server、ServerGate
確認要求 なし
Capabilities このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 Any
設定可能な変数 Any
エージェントのバージョン サポートされているすべてのエージェント バージョン。
タスクのカテゴリ 配置