AzureFunction@2 - Invoke Azure Fonction v2

Utilisez cette tâche dans un travail sans agent d’un pipeline de libération pour invoquer une fonction déclenchée HTTP dans une application de fonctions et analyser la réponse. L’application de fonctions doit être créée et hébergée dans Azure Functions.

Syntaxe

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

Entrées

azureSubscription - Azure Connexion de service
Alias d’entrée : azureServiceConnection | connectedServiceARM. string.

Connexion de service utilisée pour authentifier lors de l’invocation de la fonction Azure. Fournit un jeton d’accès Entra pour l’accès principal de service ou identité managée.


Azure fonction
string. Required.

URL de la fonction Azure qui doit être invoquée. Exemple : https://azurefunctionapp.azurewebsites.net/api/HttpTriggerJS1.


key - Clé de fonction
string.

La fonction ou la clé hôte utilisée pour accéder et invoquer la fonction. Pour garder la clé sécurisée, utilisez une variable pipeline secrète pour stocker la clé de fonction. Exemple : $(myFunctionKey). myFunctionKey est une variable secrète au niveau de l’environnement dont la valeur est la clé secrète.


method - Méthode
string. Required. Valeurs autorisées : OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, PATCH. Valeur par défaut : POST.

La méthode HTTP avec laquelle la fonction sera invoquée.


headers - En-têtes
string. Valeur par défaut : {\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’en-tête au format JSON sera associé à la requête envoyée à la fonction.


queryParameters - Paramètres de requête
string.

La requête de chaîne à ajouter à l’URL de la fonction. Il ne faut pas commencer par ? ou &.


body - Carrosserie
string. Optionnel. Utilisez quand method != GET && method != HEAD.

Corps de message au format JSON pour la demande.


waitForCompletion - Événement d’achèvement
string. Required. Valeurs autorisées : true (Rappel), false (ApiResponse). Valeur par défaut : false.

Comment la tâche rapporte l’achèvement.

  • false - Réponse API - la fonction renvoie le succès et les critères de réussite sont évalués à vrai.
  • true - Rappel - la fonction effectue un rappel pour mettre à jour l’enregistrement de la timeline.

successCriteria - Critères de réussite
string. Optionnel. Utilisez quand waitForCompletion = false.

Les critères pour réussir une tâche. Par défaut, la tâche restitue 200 OK un statut en cas de réussite. Si cette entrée n’est pas spécifiée, le contenu de la réponse n’influence pas le résultat.

Exemple : Pour la réponse {"status" : "successful"}, l’expression peut être eq(root['status'], 'successful'). En savoir plus sur la spécification des conditions.


Options de contrôle de tâche

Toutes les tâches ont des options de contrôle en plus de leurs entrées de tâche. Pour plus d’informations, consultez Options de contrôle et propriétés de tâche courantes.

Variables de sortie

Aucun.

Remarques

Utilisez cette tâche dans un sans agent d’un pipeline de libération pour invoquer une fonction déclenchée HTTP dans une application de fonctions créée et hébergée dans Azure Functions et analyser la réponse.

Où une tâche doit-elle signaler la fin lorsque le mode Rappel est choisi comme événement de fin ?

Pour signaler la termination, la fonction doit POST les données de complétion vers le point de terminaison REST du pipeline suivant.

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

Voir cette application simple cmdline pour plus de détails. De plus, une bibliothèque d’assistance C# est disponible pour permettre la journalisation en temps réel et la gestion de l’état des tâches sans agent. En savoir plus

Pourquoi la tâche échoue-t-elle en moins d’une minute alors que le temps d’attente est plus long ?

Si la fonction s’exécute plus d’une minute, utilisez l’événement de complétion de rappel . L’option de complétion de réponse API est prise en charge pour les requêtes qui se terminent en 60 secondes.

Exemples

Les deux exemples suivants sont fonctionnellement équivalents. Le premier exemple utilise une connexion de service Azure Resource Manager pour l’authentification, tandis que le second exemple utilise directement une clé de fonction pour l’authentification.

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'

Exigences

Requirement Description
Types de canalisations YAML, Build Classique, Version Classique
Fonctionne Serveur, ServerGate
Demands None
Capacités Cette tâche ne répond à aucune demande de tâches ultérieures dans le travail.
Restrictions de commande N'importe lequel
Variables paramétrables N'importe lequel
Version de l’agent Toutes les versions de l’agent prises en charge.
Catégorie de tâche Utilitaire