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


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.
# 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 - Тип подключения
Входной псевдоним: connectedServiceNameSelector. string. Обязательный. Допустимые значения: connectedServiceName (Универсальный), connectedServiceNameARM (Azure Resource Manager). Значение по умолчанию: connectedServiceName.

Указывает тип подключения службы, используемый для вызова REST API. Выберите Azure Resource Manager, чтобы вызвать API управления Azure или Универсальный api для всех остальных API.


serviceConnection - Подключение универсальной службы
Входной псевдоним: connectedServiceName | genericService. string. Требуется при .connectedServiceNameSelector = connectedServiceName

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


serviceConnection - Подключение универсальной службы
Входной псевдоним: connectedServiceName. string. Требуется при .connectedServiceNameSelector = connectedServiceName

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


azureServiceConnection - Подписка Azure
Входной псевдоним: connectedServiceNameARM | azureSubscription. string. Требуется при .connectedServiceNameSelector = connectedServiceNameARM

Указывает подписку azure Resource Manager для настройки и использования для вызова API управления Azure.


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

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

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

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


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

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

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

Нет.

Remarks

Примечание

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

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

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

Настройка задачи

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

Какие базовые 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, классическая сборка, классический выпуск
Выполняется в Server, ServerGate
Требования None
Capabilities Эта задача не удовлетворяет требованиям для последующих задач в задании.
Ограничения команд Любой
Устанавливаемые переменные Любой
Версия агента Все поддерживаемые версии агента.
Категория задач Развертывание