次の方法で共有


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 - 接続の種類
入力エイリアス: connectedServiceNameSelectorstring. 必須。 使用できる値: connectedServiceName (汎用)、connectedServiceNameARM (Azure Resource Manager)。 既定値: connectedServiceName.

REST API の呼び出しに使用するサービス接続の種類を指定します。 Azure Resource Manager 選択して、Azure 管理 API を呼び出すか、他のすべての API に対して汎用 します。


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

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


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

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


method - メソッドの
string. 必須。 使用できる値: OPTIONSGETHEADPOSTPUTDELETETRACEPATCH。 既定値: 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 - 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 - Completion イベント
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 管理 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" }

詳細については、この単純なコマンドライン アプリケーション を参照してください。

さらに、C# ヘルパー ライブラリを使用して、エージェントレス タスクのライブ ログ記録とタスクの状態の管理を有効にすることができます。 詳細情報

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

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

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、クラシック ビルド、クラシック リリース
実行日 サーバー、ServerGate
の需要 なし
機能の このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 どれでも
設定可能な変数 どれでも
エージェントのバージョン サポートされているすべてのエージェント バージョン。
タスク カテゴリ 展開