다음을 통해 공유


InvokeRESTAPI@1 - REST API v1 작업 호출

이 작업을 사용하여 파이프라인의 일부로 REST API를 호출합니다.

Syntax

# 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 또는 제네릭을 호출합니다.


serviceConnection - 일반 서비스 연결
입력 별칭: connectedServiceName | genericService. string. 필요한 경우 connectedServiceNameSelector = connectedServiceName입니다.

호출에 대한 baseUrl 및 작업에 사용할 권한 부여를 제공하는 제네릭 서비스 연결을 지정합니다.


serviceConnection - 일반 서비스 연결
입력 별칭: connectedServiceName. string. 필요한 경우 connectedServiceNameSelector = connectedServiceName입니다.

호출에 대한 baseUrl 및 작업에 사용할 권한 부여를 제공하는 제네릭 서비스 연결을 지정합니다.


azureServiceConnection - Azure 구독
입력 별칭: connectedServiceNameARM | azureSubscription. string. 필요한 경우 connectedServiceNameSelector = connectedServiceNameARM입니다.

Azure 관리 API를 호출하기 위해 구성하고 사용할 Azure Resource Manager 구독을 지정합니다.


azureServiceConnection - Azure 구독
입력 별칭: connectedServiceNameARM. string. 필요한 경우 connectedServiceNameSelector = connectedServiceNameARM입니다.

Azure 관리 API를 호출하기 위해 구성하고 사용할 Azure Resource Manager 구독을 지정합니다.


method - 메서드
string. 필수 요소. 허용되는 값: OPTIONS, , GET, HEADPOST, PUT, , DELETE, TRACE, PATCH. 기본값은 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 접미사가 /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'). 조건 지정에 대해 자세히 알아봅니다.


작업 제어 옵션

모든 작업에는 작업 입력 외에 제어 옵션이 있습니다. 자세한 내용은 컨트롤 옵션 및 일반적인 작업 속성을 참조하세요.

출력 변수

없음

설명

참고

이 작업은 에이전트 없는 작업에서만 사용할 수 있습니다.

API가 성공을 반환하고 응답 본문 구문 분석이 성공하거나 API가 성공으로 타임라인 레코드를 업데이트하는 경우 성공합니다.

REST API 호출 태스크는 배포 작업을 직접 수행하지 않습니다. 대신 자동화된 파이프라인의 일부로 모든 일반 HTTP REST API를 호출하고 필요에 따라 완료될 때까지 기다릴 수 있습니다.

REST API 호출 태스크 구성

이 작업을 사용하는 방법에 대한 자세한 내용은 승인 및 게이트 개요를 참조하세요.

Azure Management API를 호출할 때 사용되는 기본 URL은 무엇인가요?

Azure 관리 API는 선택한 환경의 ResourceManagerEndpoint 를 사용하여 호출됩니다. 예를 들어 https://management.azure.com 구독이 AzureCloud 환경에 있을 때 사용됩니다.

콜백이 완료 이벤트로 선택될 때 작업 신호 완료 위치는 어디인가요?

완료를 알리기 위해 외부 서비스는 다음 파이프라인 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# 도우미 라이브러리를 사용하여 에이전트 없는 작업에 대한 실시간 로깅 및 작업 상태 관리할 수 있습니다. 자세한 정보

응답 본문을 다른 작업의 입력으로 사용할 수 있나요?

아니요, 이 작업은 에이전트 없는 작업이며 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하면 작업이 성공합니다.

요구 사항

요구 사항 Description
파이프라인 유형 YAML, 클래식 빌드, 클래식 릴리스
실행 중 Server, ServerGate
요청 없음
Capabilities 이 작업은 작업의 후속 작업에 대한 요구를 충족하지 않습니다.
명령 제한 사항 모두
설정 가능한 변수 모두
에이전트 버전 지원되는 모든 에이전트 버전.
작업 범주 배포