Exécuter manuellement une fonction non déclenchée via HTTPManually run a non HTTP-triggered function

Cet article explique comment exécuter manuellement une fonction non déclenchée via une requête HTTP spécialement formatée.This article demonstrates how to manually run a non HTTP-triggered function via specially formatted HTTP request.

Vous pourrez être amené à exécuter « à la demande » une fonction Azure déclenchée indirectement.In some contexts, you may need to run "on-demand" an Azure Function that is indirectly triggered. Parmi les exemples de déclencheurs indirects figurent les fonctions selon une planification ou les fonctions dont l'exécution résulte de l'action d’une autre ressource.Examples of indirect triggers include functions on a schedule or functions that run as the result of another resource's action.

Postman est utilisé dans l’exemple suivant, mais vous pouvez utiliser cURL, Fiddler ou tout autre outil pour envoyer des requêtes HTTP.Postman is used in the following example, but you may use cURL, Fiddler or any other like tool to send HTTP requests.

Définir l’emplacement de la requêteDefine the request location

Pour exécuter une fonction non déclenchée via HTTP, vous devez trouver un moyen d’envoyer une requête vers Azure.To run a non HTTP-triggered function, you need a way to send a request to Azure to run the function. L’URL utilisée pour effectuer cette requête présente une forme spécifique.The URL used to make this request takes a specific form.

Définir l’emplacement de la requête : nom d'hôte + chemin d’accès du dossier + nom de fonction

  • Nom d’hôte : emplacement public de l’application de fonction composé du nom de l’application plus azurewebsites.net ou votre domaine personnalisé.Host name: The function app's public location that is made up from the function app's name plus azurewebsites.net or your custom domain.
  • Chemin d’accès du dossier : pour accéder aux fonctions non déclenchées via HTTP via une requête HTTP, vous devez envoyer cette requête via les dossiers admin/fonctions.Folder path: To access non HTTP-triggered functions via an HTTP request, you have to send the request through the folders admin/functions.
  • Nom de fonction : Nom de la fonction que vous souhaitez exécuter.Function name: The name of the function you want to run.

Vous utilisez cet emplacement de requête dans Postman, de même que la clé principale de la fonction dans la requête vers Azure pour exécuter la fonction.You use this request location in Postman along with the function's master key in the request to Azure to run the function.

Notes

Quand vous exécutez localement, la clé principale de la fonction n’est pas nécessaire.When running locally, the function's master key is not required. Vous pouvez directement appeler la fonction en omettant l’en-tête x-functions-key.You can directly call the function omitting the x-functions-key header.

Obtenir la clé principale de la fonctionGet the function's master key

Accédez à votre fonction dans le portail Azure. Cliquez sur Gérer, puis recherchez la section Clés d’hôte.Navigate to your function in the Azure portal and click on Manage and find the Host Keys section. Cliquez sur le Bouton Copier de la ligne _master pour copier la clé principale dans le Presse-papiers.Click on the Copy button in the _master row to copy the master key to your clipboard.

Copier la clé principale à partir de l’écran Gestion des fonctions

Après avoir copié la clé principale, cliquez sur le nom de fonction pour revenir à la fenêtre du fichier de code.After copying the master key, click on the function name to return to the code file window. Cliquez ensuite sur l’onglet Journaux d’activité. Vous noterez ici la présence de messages émanant de la fonction consignée lors de l'exécution de la fonction à partir de Postman.Next, click on the Logs tab. You'll see messages from the function logged here when you manually run the function from Postman.

Attention

En raison des autorisations élevées dans votre application de fonction accordées par la clé principale, vous ne devez pas partager celle-ci avec des tiers, ou la distribuer dans une application.Due to the elevated permissions in your function app granted by the master key, you should not share this key with third parties or distribute it in an application.

Appeler la fonctionCall the function

Ouvrez Postman et procédez comme suit :Open Postman and follow these steps:

  1. Entrez l'emplacement de la requête dans la zone de texte de l'URL.Enter the request location in the URL text box.

  2. Vérifiez que la méthode HTTP est définie sur POST.Ensure the HTTP method is set to POST.

  3. Cliquez sur l'onglet En-têtes.Click on the Headers tab.

  4. Entrez x-fonctions-key en tant que première clé et collez la clé principale (à partir du Presse-papiers) dans la zone Valeur.Enter x-functions-key as the first key and paste the master key (from the clipboard) into the value box.

  5. Entrez Content-Type en tant que deuxième clé et entrez application/json en tant que valeur.Enter Content-Type as the second key and enter application/json as the value.

    Paramètres des en-têtes Postman

  6. Cliquez sur l'onglet Corps.Click on the Body tab.

  7. Entrez { "input": "test" } en tant que corps de la requête.Enter { "input": "test" } as the body for the request.

    Paramètres de corps Postman

  8. Cliquez sur Envoyer.Click Send.

    Envoi d’une requête avec Postman

Postman indique alors un état 202 Accepté.Postman then reports a status of 202 Accepted.

Revenez ensuite à votre fonction sur le Portail Azure.Next, return to your function in the Azure portal. Reportez-vous à la fenêtre Journaux d’activité afin de consulter les messages émanant de l’appel manuel de la fonction.Locate the Logs window and you'll see messages coming from the manual call to the function.

Résultats du journal de la fonction à partir d'un appel manuel

Étapes suivantesNext steps