Поделиться через


InvokeRESTAPI@1. Вызов задачи REST API версии 1

Используйте эту задачу для вызова 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 Resource Manager для настройки и использования для вызова API управления Azure.


Метод method -
string. Обязательное. Допустимые значения: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, PATCH. Значение по умолчанию: POST.

Указывает метод HTTP, вызывающий API.


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.

Указывает строку, добавляемую к baseUrl из универсального подключения службы при вызове HTTP.

Пример. Если 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 - обратного вызова: сообщает о завершении, когда внешняя служба выполняет обратный вызов для обновления записи временной шкалы.

successCriteria - критерии успешности
string. Необязательно. Используется при waitForCompletion = false.

Указывает критерии задачи для успешного выполнения. Содержимое ответа не влияет на результат, если критерии не определены. По умолчанию задача передается, когда вызов возвращает 200 OK.

Пример: для {"status" : "successful"}ответа выражение может быть eq(root['status'], 'successful'). Дополнительные сведения об указании условий.


Параметры управления задачами

Помимо входных данных, все задачи имеют параметры управления. Дополнительные сведения см. в разделе Параметры управления и общие свойства задач.

Выходные переменные

Нет.

Замечания

Примечание.

Эту задачу можно использовать только в задании без агента.

Успешное выполнение, если API возвращает успешное выполнение, а анализ текста ответа выполнен успешно или когда API обновляет запись временной шкалы успешно.

Вызов задачи REST API не выполняет действия развертывания напрямую. Вместо этого он позволяет вызывать любой универсальный REST API HTTP в рамках автоматизированного конвейера и, при необходимости, подождите, пока он будет завершен.

настройка задачи REST API вызова

Дополнительные сведения об использовании этой задачи см. в разделе Утверждения и шлюзы.

Какие базовые URL-адреса используются при вызове API управления Azure?

Api управления Azure вызываются с помощью ResourceManagerEndpoint выбранной среды. Например, https://management.azure.com используется, если подписка находится в среде AzureCloud.

Где должно быть завершено выполнение задачи при выборе обратного вызова в качестве события завершения?

Чтобы сигнализировать о завершении, внешняя служба должна отправлять данные о завершении 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" }

Дополнительные сведения см. в этом простом приложения cmdline.

Кроме того, вспомогающая библиотека C# доступна для включения динамического ведения журнала и управления состоянием задачи без агента. Подробнее

Можно ли использовать текст ответа в качестве входных данных для другой задачи?

Нет, так как эта задача является задачей без агента и использует внутреннюю httpRequest TFS, которая не возвращает содержимое 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, классическая сборка, классический выпуск
Выполняется в Сервер, ServerGate
требования Нет
возможностей Эта задача не удовлетворяет требованиям к последующим задачам в задании.
ограничения команд Любое
переменные settable Любое
Версия агента Все поддерживаемые версии агента.
Категория задач Внедрять