AzureFunction@2 - Anropa Azure funktion v2-uppgiften

Använd denna uppgift i ett agentlöst jobb i en releasepipeline för att anropa en HTTP-triggad funktion i en funktionsapp och tolka svaret. Funktionsappen måste skapas och hostas i 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.

Ingångar

azureSubscription - Azure Tjänsteanslutning
Alias för inmatning: azureServiceConnection | connectedServiceARM. string.

Tjänsteanslutning som används för autentisering när Azure-funktionen anropas. Tillhandahåller en entraåtkomsttoken för åtkomst till tjänstehuvud- eller hanterad identitet.


function - Azure funktion URL
string. Required.

URL till Azure-funktionen som behöver anropas. Exempel: https://azurefunctionapp.azurewebsites.net/api/HttpTriggerJS1.


key - Funktionsknapp
string.

Funktionen eller värdnyckeln som används för att komma åt och anropa funktionen. För att hålla nyckeln säker, använd en hemlig pipelinevariabel för att lagra funktionsnyckeln. Exempel: $(myFunctionKey). myFunctionKey är en miljönivå-hemlig variabel med ett värde som den hemliga nyckeln.


method - Metod
string. Required. Tillåtna värden: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, PATCH. Standardvärde: POST.

HTTP-metoden med vilken funktionen ska anropas.


headers - Rubriker
string. Standardvärde: {\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}.

Headern i JSON-format ska bifogas förfrågan som skickas till funktionen.


queryParameters - Frågeparametrar
string.

Strängfrågan för att lägga till funktions-URL:en. Får inte börja med ? eller &.


body - Kaross
string. Optional. Använd när method != GET && method != HEAD.

JSON-formaterad meddelandekropp för förfrågan.


waitForCompletion - Färdigställande evenemang
string. Required. Tillåtna värden: true (Callback), false (ApiResponse). Standardvärde: false.

Hur uppgiften rapporterar slutförande.

  • false - API-svar – funktionen returnerar framgång och framgångskriterier utvärderas till sann.
  • true - Callback – funktionen gör en callback för att uppdatera tidslinjeposten.

successCriteria - Framgångskriterier
string. Optional. Använd när waitForCompletion = false.

Kriterierna för en lyckad uppgift. Som standard returnerar 200 OK uppgiften status när den lyckas. Om denna indata inte specificeras påverkar svarsinnehållet inte resultatet.

Exempel: För svar {"status" : "successful"}kan uttrycket vara eq(root['status'], 'successful'). Läs mer om hur du specificerar villkor.


Alternativ för uppgiftskontroll

Alla aktiviteter har kontrollalternativ utöver sina uppgiftsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.

Utdatavariabler

Inga.

Anmärkningar

Använd denna uppgift i ett agentlöst jobb i en releasepipeline för att anropa en HTTP-triggad funktion i en funktionsapp som skapas och hostas i Azure Functions och parsa svaret.

Var ska en uppgift signalera slutförande när Callback väljs som slutförandehändelse?

För att signalera komplettering bör funktionen POSTA kompletteringsdata till följande pipelines REST-endpoint.

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

Se denna enkla cmdline-applikation för detaljer. Dessutom finns ett C#-hjälpbibliotek tillgängligt för att möjliggöra liveloggning och hantering av uppgiftsstatus för agentlösa uppgifter. Läs mer

Varför misslyckas uppgiften inom 1 minut när timeouten är längre?

Om funktionen körs i mer än 1 minut, använd Callback-fullbordan . API Response completion alternativet stöds för förfrågningar som slutförs inom 60 sekunder.

Exempel

Följande två exempel är funktionellt ekvivalenta. Det första exemplet använder en Azure Resource Manager-tjänsteanslutning för autentisering, medan det andra exemplet direkt använder en funktionsnyckel för autentisering.

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

Krav Description
Typer av pipelines YAML, klassisk version, klassisk version
Körs på Server, ServerGate
Demands Ingen
Kapaciteter Den här aktiviteten uppfyller inte några krav på efterföljande uppgifter i jobbet.
Begränsningar för kommandon Vilket som helst
Inställbara variabler Vilket som helst
Agentversion Alla agentversioner som stöds.
Aktivitetskategori Nyttighet