Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie diese Aufgabe in einem agentlosen Job einer Release-Pipeline, um eine HTTP-ausgelöste Funktion in einer Funktions-App aufzurufen und die Antwort zu parsen. Die Funktions-App muss in Azure Functions erstellt und gehostet werden.
Syntax
# 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.
Eingaben
azureSubscription
-
Azure Serviceverbindung
Eingabe-Alias: azureServiceConnection | connectedServiceARM.
string.
Serviceverbindung, die zur Authentifizierung beim Aufruf der Azure-Funktion verwendet wird. Bietet einen Entra Access Token für Service Principal- oder Managed Identity-Zugriff.
function
-
Azure Funktion URL
string. Required.
URL der Azure-Funktion, die aufgerufen werden muss. Beispiel: https://azurefunctionapp.azurewebsites.net/api/HttpTriggerJS1.
key
-
Funktionstaste
string.
Die Funktion oder der Host-Schlüssel, mit dem man auf die Funktion zugreift und sie aufruft. Um den Schlüssel sicher zu halten, verwenden Sie eine geheime Pipeline-Variable, um den Funktionsschlüssel zu speichern. Beispiel: $(myFunctionKey).
myFunctionKey ist eine geheime Variable auf Umweltebene mit einem Wert als geheimer Schlüssel.
method
-
Methode
string. Required. Zulässige Werte: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, PATCH. Standardwert: POST.
Die HTTP-Methode, mit der die Funktion aufgerufen wird.
headers
-
Überschriften
string. Standardwert: {\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}.
Der Header im JSON-Format soll an die an die Funktion gesendete Anfrage angehängt werden.
queryParameters
-
Abfrageparameter
string.
Die String-Abfrage, um an die Funktions-URL anzuhängen. Man darf nicht mit ? oder &beginnen.
body
-
Karosserie
string. Dies ist optional. Wird verwendet, wenn method != GET && method != HEAD.
JSON-formatierter Nachrichtentext für die Anfrage.
waitForCompletion
-
Abschluss-Event
string. Required. Erlaubte Werte: true (Callback), false (ApiResponse). Standardwert: false.
Wie die Aufgabe den Abschluss meldet.
-
false- API-Antwort – die Funktion gibt Erfolgs- und Erfolgskriterien als wahr zurück. -
true- Callback – die Funktion führt einen Callback durch, um den Timeline-Datensatz zu aktualisieren.
successCriteria
-
Erfolgskriterien
string. Dies ist optional. Wird verwendet, wenn waitForCompletion = false.
Die Kriterien für eine erfolgreiche Aufgabe. Standardmäßig gibt die Aufgabe bei Erfolg den Status zurück 200 OK . Wenn diese Eingabe nicht angegeben ist, beeinflusst der Antwortinhalt das Ergebnis nicht.
Beispiel: Für die Antwort {"status" : "successful"}kann der Ausdruck sein eq(root['status'], 'successful'). Erfahren Sie mehr über die Festlegung von Bedingungen.
Aufgabensteuerungsoptionen
Alle Aufgaben verfügen zusätzlich zu ihren Aufgabeneingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerelementoptionen und allgemeinen Aufgabeneigenschaften.
Ausgabevariablen
Keiner.
Bemerkungen
Verwenden Sie diese Aufgabe in einem agentenlosen Job einer Release-Pipeline, um eine HTTP-ausgelöste Funktion in einer Funktions-App, die in Azure Functions erstellt und gehostet wird, aufzurufen und die Antwort zu parsen.
Wo sollte eine Aufgabe den Abschluss signalisieren, wenn Callback als Abschlussereignis gewählt wird?
Um den Abschluss zu signalisieren, sollte die Funktion die Vervollständigungsdaten an den REST-Endpunkt der folgenden Pipeline posten.
{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" }
Siehe diese einfache CMDLINE-Anwendung für Details. Zusätzlich steht eine C#-Hilfsbibliothek zur Verfügung, die Live-Logging und das Management von Aufgaben ohne Agenten ermöglicht. Erfahren Sie mehr
Warum scheitert die Aufgabe innerhalb von 1 Minute, wenn die Auszeit länger ist?
Wenn die Funktion länger als 1 Minute ausgeführt wird, verwenden Sie das Callback-Completion Event. Die Option API Response Completion wird für Anfragen unterstützt, die innerhalb von 60 Sekunden abgeschlossen sind.
Beispiele
Die folgenden beiden Beispiele sind funktional äquivalent. Das erste Beispiel verwendet eine Azure Resource Manager-Serviceverbindung zur Authentifizierung, während das zweite Beispiel direkt einen Funktionsschlüssel zur Authentifizierung verwendet.
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'
Requirements
| Anforderung | Beschreibung |
|---|---|
| Pipeline-Typen | YAML, Classic Build, Classic Release |
| Läuft auf | Server, ServerGate |
| Demands | Nichts |
| Funktionen | Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag. |
| Einschränkungen von Befehlen | Any |
| Einstellbare Variablen | Any |
| Agentversion | Alle unterstützten Agentversionen. |
| Aufgabenkategorie | Dienstprogramm |