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.
Dane wejściowe
connectionType
-
typ połączenia
Alias wejściowy: connectedServiceNameSelector
.
string
. To jest 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 usługi Azure Resource Manager, aby wywołać interfejs API zarządzania platformą Azure lub ogólne dla wszystkich innych interfejsów API.
serviceConnection
-
ogólne połączenie z usługą
Alias wejściowy: connectedServiceName | genericService
.
string
. Wymagane, gdy connectedServiceNameSelector = connectedServiceName
.
Określa ogólne połączenie usługi, które udostępnia baseUrl dla wywołania i autoryzacji do użycia dla zadania.
subskrypcji 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.
metody method
-
string
. To jest wymagane. Dozwolone wartości: OPTIONS
, GET
, HEAD
, POST
, PUT
, DELETE
, TRACE
, PATCH
. Wartość domyślna: POST
.
Określa metodę HTTP, która wywołuje interfejs API.
headers
-
nagłówków
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
-
Treść
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 ciąg, który ma być dołączany do elementu baseUrl z ogólnego połączenia usługi podczas wykonywania wywołania HTTP.
Przykład: jeśli adres URL połączenia z usługą jest https:...TestProj/_apis/Release/releases
, a sufiks adresu URL jest /2/environments/1
, adres URL połączenia usługi stanie się https:.../TestProj/_apis/Release/releases/2/environments/1
. Jeśli sufiks adresu URL jest ?definitionId=1&releaseCount=1
, adres URL połączenia usługi stanie się https//...TestProj/_apis/Release/releases?definitionId=1&releaseCount=1
.
waitForCompletion
-
ukończenia
string
. To jest wymagane. Dozwolone wartości: true
(wywołanie zwrotne), false
(ApiResponse). Wartość domyślna: false
.
Określa sposób wykonywania raportów zadań. Dozwolone wartości to:
-
false
- odpowiedzi interfejsu API: zgłasza ukończenie, gdy funkcja zwraca powodzenie w ciągu 20 sekund, a kryteria sukcesu są obliczane na wartość true. -
true
- wywołania zwrotnego: zgłasza ukończenie, gdy usługa zewnętrzna wykonuje wywołanie zwrotne w celu zaktualizowania rekordu osi czasu.
successCriteria
-
kryteria sukcesu
string
. Opcjonalny. Użyj polecenia , gdy waitForCompletion = false
.
Określa kryteria powodzenia zadania. Zawartość odpowiedzi nie ma wpływu na wynik, jeśli nie zdefiniowano żadnych kryteriów. Domyślnie zadanie przechodzi, gdy wywołanie zwraca 200 OK
.
Przykład: w przypadku {"status" : "successful"}
odpowiedzi wyrażenie może być eq(root['status'], 'successful')
. Dowiedz się więcej o określaniu warunków.
Opcje sterowania zadaniami
Wszystkie zadania mają opcje sterowania oprócz danych wejściowych zadań podrzędnych. Aby uzyskać więcej informacji, zobacz opcje kontroli i typowe właściwości zadań.
Zmienne wyjściowe
Żaden.
Uwagi
Uwaga
Tego zadania można używać tylko w zadania 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łaj interfejs API REST nie wykonuje bezpośrednio akcji wdrażania. Zamiast tego umożliwia wywoływanie dowolnego ogólnego interfejsu API REST HTTP w ramach zautomatyzowanego potoku i opcjonalnie poczekaj na jego ukończenie.
Aby uzyskać więcej informacji na temat korzystania z tego zadania, zobacz Zatwierdzenia i bramy — omówienie.
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 ResourceManagerEndpoint wybranego środowiska. Na przykład https://management.azure.com
jest używana, gdy subskrypcja znajduje się w środowisku AzureCloud.
Gdzie należy sygnalizować ukończenie zadania po wybraniu wywołania zwrotnego jako zdarzenia ukończenia?
Aby zasygnalizować ukończenie, usługa zewnętrzna powinna wykonać dane post do następującego punktu końcowego REST potoków.
{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" }
Aby uzyskać szczegółowe informacje, zobacz tej prostej aplikacji wiersza polecenia.
Ponadto dostępna jest biblioteka pomocnika języka C#umożliwiająca rejestrowanie na żywo i zarządzanie stanem zadań dla zadań bez agentów. 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 żądania 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 powiedzie się, gdy odpowiedź jest zgodna z naszym successCriteria
: eq(root['count''], ''1425''.
Wymagania
Wymaganie | Opis |
---|---|
Typy potoków | YAML, klasyczna kompilacja, wersja klasyczna |
Działa na | Serwer, ServerGate |
Wymagania | Żaden |
możliwości | To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu. |
ograniczenia poleceń | Jakikolwiek |
zmienne ustawiane | Jakikolwiek |
Wersja agenta | Wszystkie obsługiwane wersje agentów. |
Kategoria zadań | Zastosuj |