AzureFunction@2 - Roep Azure functie v2-taak aan

Gebruik deze taak in een agentloze taak van een release-pipeline om een HTTP-getriggerde functie in een functie-app aan te roepen en het antwoord te parsen. De functie-app moet worden gemaakt en gehost in Azure Functions.

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.

Invoer

azureSubscription - Azure Dienstverbinding
Invoer alias: azureServiceConnection | connectedServiceARM. string.

Serviceverbinding gebruikt om te authenticeren bij het aanroepen van de Azure-functie. Biedt een Entra Access Token voor Service Principal- of Managed Identity-toegang.


function - Azure functie URL
string. Verplicht.

URL van de Azure-functie die moet worden aangeroepen. Voorbeeld: https://azurefunctionapp.azurewebsites.net/api/HttpTriggerJS1.


key - Functietoets
string.

De functie of de hostsleutel die wordt gebruikt om de functie te benaderen en aan te roepen. Om de sleutel veilig te houden, gebruik je een geheime pijplijnvariabele om de functiesleutel op te slaan. Voorbeeld: $(myFunctionKey). myFunctionKey is een omgevingsniveau geheime variabele met een waarde als geheime sleutel.


method - Methode
string. Verplicht. Toegestane waarden: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, PATCH. Standaardwaarde: POST.

De HTTP-methode waarmee de functie wordt aangeroepen.


headers - Headers
string. Standaardwaarde: {\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}.

De header in JSON-formaat die aan het verzoek wordt gekoppeld dat naar de functie wordt gestuurd.


queryParameters - Queryparameters
string.

De stringquery om aan de functie-URL toe te voegen. Mag niet beginnen met ? of &.


body - Carrosserie
string. Optional. Gebruiken wanneer method != GET && method != HEAD.

JSON-geformatteerde berichttekst voor het verzoek.


waitForCompletion - Voltooiingsevenement
string. Verplicht. Toegestane waarden: true (Callback), false (ApiResponse). Standaardwaarde: false.

Hoe de taak de voltooiing rapporteert.

  • false - API-respons - de functie geeft succes en succescriteria worden beoordeeld als waar.
  • true - Callback - de functie maakt een callback om het tijdlijnrecord bij te werken.

successCriteria - Succescriteria
string. Optional. Gebruiken wanneer waitForCompletion = false.

De criteria voor een succesvolle taak. Standaard geeft de taak status terug 200 OK wanneer deze succesvol is. Als deze invoer niet wordt gespecificeerd, beïnvloedt de inhoud van de respons het resultaat niet.

Voorbeeld: Voor antwoord {"status" : "successful"}kan de uitdrukking zijn eq(root['status'], 'successful'). Lees meer over het specificeren van voorwaarden.


Opties voor taakbeheer

Alle taken hebben besturingsopties naast hun taakinvoer. Zie Opties en algemene taakeigenschappenvoor meer informatie.

Uitvoervariabelen

Geen.

Opmerkingen

Gebruik deze taak in een agentloze taak van een release-pipeline om een HTTP-getriggerde functie aan te roepen in een functie-app die in Azure Functions wordt gemaakt en gehost, en het antwoord te parsen.

Waar moet een taak voltooiing aangeven wanneer Callback als voltooiingsevent wordt gekozen?

Om voltooiing te signaleren, moet de functie voltooiingsgegevens POST naar het volgende REST-eindpunt van de pijplijnen.

{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" }

Zie deze eenvoudige cmdline-toepassing voor details. Daarnaast is er een C#-hulpbibliotheek beschikbaar om live logging en het beheren van taakstatus voor agentloze taken mogelijk te maken. Meer informatie

Waarom faalt de taak binnen 1 minuut als de time-out langer is?

Als de functie langer dan 1 minuut wordt uitgevoerd, gebruik dan het Callback completion event. De API Response-voltooiingsoptie wordt ondersteund voor verzoeken die binnen 60 seconden worden afgerond.

Voorbeelden

De volgende twee voorbeelden zijn functioneel equivalent. Het eerste voorbeeld gebruikt een Azure Resource Manager-serviceverbinding voor authenticatie, terwijl het tweede voorbeeld direct een functiesleutel gebruikt voor authenticatie.

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

Vereiste Description
Soorten pijplijnen YAML, klassieke build, klassieke release
Loopt op Server, ServerGate
Demands Geen
mogelijkheden Deze taak voldoet niet aan de vereisten voor volgende taken in de taak.
Beperkingen voor opdrachten Any
Instelbare variabelen Any
Agent versie Alle ondersteunde agentversies.
Taakcategorie Nutsvoorzieningen