AzureFunction@2 - Invoca Azure task funzione v2

Usa questo compito in un lavoro senza agenti di una pipeline di rilascio per evocare una funzione attivata da HTTP in un'app di funzione e analizzare la risposta. L'app funzione deve essere creata e ospitata in Funzioni di Azure.

Sintassi

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

Ingressi

azureSubscription - Azure Connessione al servizio
Alias di input: azureServiceConnection | connectedServiceARM. string.

Connessione di servizio utilizzata per autenticarsi quando si invoca la funzione Azure. Fornisce un Entra Access Token per l'accesso al Service Principal o Managed Identity.


Azure funzione URL
string. Obbligatorio.

URL della funzione Azure che deve essere invocata. Esempio: https://azurefunctionapp.azurewebsites.net/api/HttpTriggerJS1.


key - Tasto funzione
string.

La funzione o la chiave host usata per accedere e invocare la funzione. Per mantenere la chiave sicura, si utilizza una variabile segreta pipeline per memorizzare la chiave funzione. Esempio: $(myFunctionKey). myFunctionKey è una variabile segreta a livello di ambiente con un valore come chiave segreta.


method - Metodo
string. Obbligatorio. Valori consentiti: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, PATCH. Valore predefinito: POST

Il metodo HTTP con cui la funzione verrà invocata.


headers - Header
string. Valore predefinito: {\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}

L'intestazione in formato JSON da aggiungere alla richiesta inviata alla funzione.


queryParameters - Parametri di query
string.

La query della stringa da aggiungere all'URL della funzione. Non deve iniziare con ? o &.


body - Carrozzeria
string. Optional. Usare quando method != GET && method != HEAD.

Corpo del messaggio in formato JSON per la richiesta.


waitForCompletion - Evento di completamento
string. Obbligatorio. Valori consentiti: true (Callback), false (ApiResponse). Valore predefinito: false

Come il compito riporta il completamento.

  • false - Risposta API - la funzione restituisce successo e i criteri di successo vengono valutati come vero.
  • true - Callback - la funzione effettua un callback per aggiornare il record della timeline.

successCriteria - Criteri di successo
string. Optional. Usare quando waitForCompletion = false.

I criteri per un compito di successo. Di default, il compito restituisce 200 OK lo stato quando ha successo. Se questo input non è specificato, il contenuto della risposta non influenza il risultato.

Esempio: Per la risposta {"status" : "successful"}, l'espressione può essere eq(root['status'], 'successful'). Scopri di più sulla specificazione delle condizioni.


Opzioni di controllo delle attività

Tutte le attività hanno opzioni di controllo oltre ai relativi input di attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.

Variabili di output

Nessuno.

Osservazioni:

Usa questo compito in un lavoro senza agente di una pipeline di rilascio per evocare una funzione attivata HTTP in un'app di funzione creata e ospitata in Funzioni di Azure e analizza la risposta.

Dove dovrebbe un compito segnalare il completamento quando viene scelto Callback come evento di completamento?

Per segnalare il completamento, la funzione dovrebbe POST i dati di completamento verso l'endpoint REST delle pipeline successive.

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

Vedi questa semplice applicazione cmdline per dettagli. Inoltre, è disponibile una libreria helper in C# per abilitare il live logging e la gestione dello stato delle attività senza agente. Scopri di più

Perché il compito fallisce entro 1 minuto quando il timeout è più lungo?

Se la funzione viene eseguita per più di 1 minuto, si utilizza l'evento di completamento Callback . L'opzione di completamento API Response è supportata per le richieste che completano entro 60 secondi.

Esempi

I seguenti due esempi sono funzionalmente equivalenti. Il primo esempio utilizza una connessione di servizio Azure Resource Manager per l'autenticazione, mentre il secondo esempio utilizza direttamente una chiave funzione per l'autenticazione.

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'

Requisiti

Requisito Description
Tipi di pipeline YAML, build classica, versione classica
Funziona su Server, ServerGate
Demands Nessuno
Funzionalità Questa attività non soddisfa alcuna richiesta di attività successive nel processo.
Restrizioni dei comandi Qualsiasi
Variabili impostabili Qualsiasi
Versione agente Tutte le versioni dell'agente supportate.
Categoria attività Utilità