Udostępnij za pośrednictwem


InvokeRESTAPI@1 — wywoływanie zadania interfejsu API REST w wersji 1

To zadanie służy do wywoływania interfejsu API REST w ramach potoku.

Składnia

# 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.

Dane wejściowe

connectionType - Typ połączenia
Alias wejściowy: connectedServiceNameSelector. string. Wymagane. Dozwolone wartości: connectedServiceName (ogólne), connectedServiceNameARM (Azure Resource Manager). Wartość domyślna: connectedServiceName.

Określa typ połączenia usługi, który ma być używany do wywoływania interfejsu API REST. Wybierz pozycję Azure Resource Manager, aby wywołać interfejs API zarządzania platformą Azure lub ogólny dla wszystkich innych interfejsów API.


serviceConnection - Połączenie z usługą ogólną
Alias wejściowy: connectedServiceName | genericService. string. Wymagane, gdy connectedServiceNameSelector = connectedServiceName.

Określa ogólne połączenie usługi, które udostępnia element baseUrl dla wywołania i autoryzację do użycia dla zadania.


serviceConnection - Połączenie z usługą ogólną
Alias wejściowy: connectedServiceName. string. Wymagane, gdy connectedServiceNameSelector = connectedServiceName.

Określa ogólne połączenie usługi, które udostępnia element baseUrl dla wywołania i autoryzację do użycia dla zadania.


azureServiceConnection - Subskrypcja platformy Azure
Alias wejściowy: connectedServiceNameARM | azureSubscription. string. Wymagane, gdy connectedServiceNameSelector = connectedServiceNameARM.

Określa subskrypcję usługi Azure Resource Manager do konfigurowania i używania do wywoływania interfejsów API zarządzania platformy Azure.


azureServiceConnection - Subskrypcja platformy Azure
Alias wejściowy: connectedServiceNameARM. string. Wymagane, gdy connectedServiceNameSelector = connectedServiceNameARM.

Określa subskrypcję usługi Azure Resource Manager do konfigurowania i używania do wywoływania interfejsów API zarządzania platformy Azure.


method - Metoda
string. Wymagane. Dozwolone wartości: OPTIONS, , HEADGET, POSTPUTDELETE, TRACE, . PATCH Wartość domyślna: POST.

Określa metodę HTTP, która wywołuje interfejs API.


headers - Nagłówki
string. Wartość domyślna: {\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}.

Definiuje nagłówek w formacie JSON. Nagłówek jest dołączony do żądania wysłanego do interfejsu API.


body - Ciała
string. Opcjonalny. Użyj polecenia , gdy method != GET && method != HEAD.

Określa treść żądania dla wywołania funkcji w formacie JSON.


urlSuffix - Sufiks i parametry adresu URL
string.

Określa parametry, które mają zostać dołączone do elementu baseUrl z ogólnego połączenia usługi podczas wykonywania wywołania HTTP.

Przykład: Jeśli adres URL połączenia usługi to https:...TestProj/_apis/Release/releases , a sufiks adresu URL to /2/environments/1, adres URL połączenia z usługą staje się adresem https:.../TestProj/_apis/Release/releases/2/environments/1. Jeśli sufiks adresu URL to ?definitionId=1&releaseCount=1, adres URL połączenia z usługą zostanie wyświetlony https//...TestProj/_apis/Release/releases?definitionId=1&releaseCount=1jako .


waitForCompletion - Zdarzenie ukończenia
string. Wymagane. Dozwolone wartości: true (Wywołanie zwrotne), false (ApiResponse). Wartość domyślna: false.

Określa sposób uzupełniania zadań. Dozwolone wartości to:

  • false - Odpowiedź interfejsu API: zgłasza ukończenie, gdy funkcja zwraca powodzenie w ciągu 20 sekund, a kryteria powodzenia są obliczane na wartość true.
  • true - Wywołanie zwrotne: zgłasza ukończenie, gdy usługa zewnętrzna wykonuje wywołanie zwrotne w celu zaktualizowania rekordu osi czasu.

successCriteria - Kryteria powodzenia
string. Opcjonalny. Użyj polecenia , gdy waitForCompletion = false.

Określa kryteria zadania dla powodzenia. Zawartość odpowiedzi nie ma wpływu na wynik, jeśli nie zdefiniowano żadnych kryteriów. Domyślnie zadanie jest uruchamiane, gdy wywołanie zwraca 200 OKwartość .

Przykład: W przypadku odpowiedzi {"status" : "successful"}wyrażenie może mieć wartość eq(root['status'], 'successful'). Dowiedz się więcej o określaniu warunków.


Opcje sterowania zadania

Wszystkie zadania mają opcje sterowania oprócz danych wejściowych zadań. Aby uzyskać więcej informacji, zobacz Opcje sterowania i typowe właściwości zadań.

Zmienne wyjściowe

Brak.

Uwagi

Uwaga

To zadanie może być używane tylko w zadaniu bez agenta.

Powiedzie się, jeśli interfejs API zwróci powodzenie, a treść odpowiedzi zakończy się powodzeniem lub gdy interfejs API zaktualizuje rekord osi czasu z powodzeniem.

Zadanie Wywoływanie interfejsu API REST nie wykonuje bezpośrednio akcji wdrażania. Zamiast tego umożliwia wywołanie dowolnego ogólnego interfejsu API REST PROTOKOŁU HTTP w ramach zautomatyzowanego potoku i opcjonalnie poczekaj na jego ukończenie.

Konfigurowanie zadania wywoływania interfejsu API REST

Aby uzyskać więcej informacji na temat korzystania z tego zadania, zobacz Omówienie zatwierdzeń i bram.

Jakie podstawowe adresy URL są używane podczas wywoływania interfejsów API usługi Azure Management?

Interfejsy API zarządzania platformy Azure są wywoływane przy użyciu elementu ResourceManagerEndpoint wybranego środowiska. Na przykład https://management.azure.com jest używany, gdy subskrypcja znajduje się w środowisku usługi AzureCloud .

Gdzie należy wykonać sygnał zadania po wybraniu wywołania zwrotnego jako zdarzenia ukończenia?

Aby zasygnalizować ukończenie, usługa zewnętrzna powinna wykonać dane ukończenia post do następujących potoków punktu końcowego 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" }

Zobacz tę prostą aplikację cmdline , aby uzyskać szczegółowe informacje.

Ponadto dostępna jest biblioteka pomocnika języka C#, która umożliwia rejestrowanie na żywo i zarządzanie stanem zadania dla zadań bez agenta. Dowiedz się więcej

Czy mogę użyć treści odpowiedzi jako danych wejściowych dla innego zadania?

Nie, ponieważ to zadanie jest zadaniem bez agenta i używa wewnętrznego obiektu HttpRequest serwera TFS, który nie zwraca zawartości żądania HTTP.

Przykład

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

W tym przykładzie zadanie zakończy się pomyślnie, gdy odpowiedź jest zgodna z naszym successCriteriaelementem : eq(root[''count''], ''1425')).

Wymagania

Wymaganie Opis
Typy potoków YAML, kompilacja klasyczna, wersja klasyczna
Działa na Serwer, SerwerGate
Wymagania Brak
Możliwości To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu.
Ograniczenia poleceń Dowolne
Zmienne w formie tabeli settable Dowolne
Wersja agenta Wszystkie obsługiwane wersje agentów.
Kategoria zadania Wdrażanie