次の方法で共有


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.
# 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. Required when connectedServiceNameSelector = connectedServiceName. Generic service connection. 
    #azureServiceConnection: # string. Alias: connectedServiceNameARM. 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 - 接続の種類
入力エイリアス: connectedServiceNameSelectorstring. 必須です。 使用できる値: connectedServiceName (汎用)、 connectedServiceNameARM (Azure Resource Manager)。 既定値: connectedServiceName

REST API の呼び出しに使用するサービス接続の種類を指定します。 Azure management API を呼び出す場合は [Azure Resource Manager]、他のすべての API の場合は [汎用] を選択します。


serviceConnection - 汎用サービス接続
入力エイリアス: connectedServiceName | genericServicestring. connectedServiceNameSelector = connectedServiceName の場合に必要です。

呼び出しの baseUrl と、タスクに使用する承認を提供する汎用サービス接続を指定します。


serviceConnection - 汎用サービス接続
入力エイリアス: connectedServiceNamestring. connectedServiceNameSelector = connectedServiceName の場合に必要です。

呼び出しの baseUrl と、タスクに使用する承認を提供する汎用サービス接続を指定します。


azureServiceConnection - Azure サブスクリプション
入力エイリアス: connectedServiceNameARM | azureSubscriptionstring. connectedServiceNameSelector = connectedServiceNameARM の場合に必要です。

Azure 管理 API の呼び出しに構成して使用する Azure Resource Manager サブスクリプションを指定します。


azureServiceConnection - Azure サブスクリプション
入力エイリアス: connectedServiceNameARMstring. connectedServiceNameSelector = connectedServiceNameARM の場合に必要です。

Azure 管理 API の呼び出しに構成して使用する Azure Resource Manager サブスクリプションを指定します。


method - メソッド
string. 必須です。 使用できる値: OPTIONSGET、、 HEADPOSTPUTDELETETRACEPATCH。 既定値: 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 サフィックスが の場合、サービス接続 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 を使用します。

steps:
- task: InvokeRESTAPI@1
  displayName: 'Invoke REST API: GET'
  inputs:
    serviceConnection: 'generic_demo'
    method: GET
    successCriteria: 'eq(root[''count''], ''1425'')'

この例では、応答が次の eq(root[''count''], ''1425'') と一致successCriteriaすると、タスクは成功します。

要件

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