AzureFunction@2 - Zadanie Invoke Azure Function v2

Użyj tego zadania w bezagentowym zadaniu potoku release, aby wywołać funkcję wyzwalaną HTTP w aplikacji funkcjonalnej i przeanalizować odpowiedź. Aplikacja Function musi być stworzona i hostowana w Azure Functions.

Składnia

# Invoke Azure Function v2
# Invoke an Azure Function.
- task: AzureFunction@2
  inputs:
    #azureSubscription: # string. Alias: azureServiceConnection | connectedServiceARM. Azure Service Connection. 
    function: # string. Required. Azure function URL. 
    #key: # string. Function key. 
    method: 'POST' # 'OPTIONS' | 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'TRACE' | 'PATCH'. Required. Method. Default: POST.
    #headers: # string. Headers. 
    #queryParameters: # string. Query parameters. 
    #body: # string. Optional. Use when method != GET && method != HEAD. Body. 
  # Advanced
    waitForCompletion: 'false' # 'true' | 'false'. Required. Completion event. Default: false.
    #successCriteria: # string. Optional. Use when waitForCompletion = false. Success criteria.

Dane wejściowe

azureSubscription - Azure Połączenie usługowe
Alias wejściowy: azureServiceConnection | connectedServiceARM. string.

Połączenie z usługą używane do uwierzytelniania podczas wywoływania funkcji Azure. Zapewnia token dostępu Entra do dostępu do Principal Service lub Managed Identity.


function - Azure funkcja URL
string. To jest wymagane.

URL funkcji Azure, którą trzeba wywołać. Przykład: https://azurefunctionapp.azurewebsites.net/api/HttpTriggerJS1.


key - Klawisz funkcyjny
string.

Funkcja lub klucz gospodarza używany do dostępu i wywołania funkcji. Aby zabezpieczyć klucz, użyj zmiennej tajnego potoku do przechowywania klucza funkcyjnego. Przykład: $(myFunctionKey). myFunctionKey jest zmienną sekretną na poziomie środowiska z wartością jako klucz sekretny.


method - Metoda
string. To jest wymagane. Dozwolone wartości: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, PATCH. Wartość domyślna: POST.

Metoda HTTP, za pomocą której funkcja zostanie wywołana.


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

Nagłówek w formacie JSON do dołączenia do żądania wysyłanego do funkcji.


queryParameters - Parametry zapytań
string.

Zapytanie o ciąg do dodania do URL funkcji. Nie może zaczynać się od ? lub &.


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

Treści wiadomości w formacie JSON dla żądania.


waitForCompletion - Wydarzenie ukończenia
string. To jest wymagane. Dozwolone wartości: true (Callback), false (ApiResponse). Wartość domyślna: false.

Jak zadanie raportuje ukończenie.

  • false - Odpowiedź API – funkcja zwraca sukces, a kryteria sukcesu są ocenione jako prawdziwe.
  • true - Callback – funkcja wykonuje callback, aby zaktualizować rekord osi czasu.

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

Kryteria skutecznego zadania. Domyślnie zadanie zwraca 200 OK status po pomyślnym sukcesie. Jeśli dane dane wejściowe nie są określone, treść odpowiedzi nie wpływa na wynik.

Przykład: Dla odpowiedzi {"status" : "successful"}wyrażenie może brzmieć .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ń podrzędnych. Aby uzyskać więcej informacji, zobacz opcje kontroli i typowe właściwości zadań.

Zmienne wyjściowe

Żaden.

Remarks

Użyj tego zadania w agentless job potoku release, aby wywołać funkcję wyzwalaną HTTP w aplikacji funkcjonalnej stworzonej i hostowanej w Azure Functions i przeanalizować odpowiedź.

Gdzie zadanie powinno sygnalizować zakończenie, gdy Callback zostanie wybrany jako zdarzenie zakończenia?

Aby sygnalizować zakończenie, funkcja powinna POST dodać dane o ukończeniu 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" }

Zobacz tę prostą aplikację cmdline dla szczegółów. Dodatkowo dostępna jest biblioteka pomocnicza C#, która umożliwia logowanie na żywo i zarządzanie statusem zadań bezagentowych. Dowiedz się więcej

Dlaczego zadanie kończy się niepowodzeniem w ciągu 1 minuty, skoro czas jest dłuższy?

Jeśli funkcja działa dłużej niż 1 minutę, użyj zdarzenia Callback completion (Zakończenie Callback ). Opcja uzupełnienia odpowiedzi API jest obsługiwana dla żądań, które zakończą się w ciągu 60 sekund.

Examples

Dwa poniższe przykłady są funkcjonalnie równoważne. Pierwszy przykład używa połączenia usług Azure Resource Manager do uwierzytelniania, podczas gdy drugi przykład bezpośrednio używa klucza funkcyjnego do uwierzytelniania.

trigger: none
 
pool: server
 
steps:
- task: AzureFunction@2
  inputs:
    # Authenticate using Azure Resource Manager service connection
    authenticationType: 'azureServiceConnection'
    azureServiceConnection: 'working-app-registration'
    function: 'https://myfuction.azurewebsites.net/api/my-test-trigger-function'
    method: 'GET'
    waitForCompletion: 'false'
trigger: none
 
pool: server
 
steps:
- task: AzureFunction@2
  inputs:
    # Authenticate using function key
    authenticationType: 'functionKey'
    key: 'aaaaaaaa-0b0b-1c1c-2d2d-333333333333'
    function: 'https://myfuction.azurewebsites.net/api/my-test-trigger-function'
    method: 'GET'
    waitForCompletion: 'false'

Wymagania

Requirement Description
Typy rurociągów YAML, klasyczna kompilacja, wersja klasyczna
Działa na Serwer, ServerGate
Demands Żadne
Możliwości To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu.
Ograniczenia poleceń Dowolna
Zmienne ustawialne Dowolna
Wersja agenta Wszystkie obsługiwane wersje agentów.
Kategoria zadań Użyteczność