Concepts des déclencheurs et liaisons Azure Functions

Dans cet article, vous allez découvrir des concepts généraux concernant les déclencheurs et les liaisons des fonctions.

Les déclencheurs sont à l’origine de l’exécution d’une fonction. Un déclencheur définit la façon dont une fonction est appelée. Chaque fonction est associée à un seul déclencheur. Les déclencheurs sont associés à des données, qui sont souvent fournies comme la charge utile de la fonction.

La liaison d’une fonction permet de connecter de façon déclarative une autre ressource à la fonction. Les liaisons peuvent être connectées en tant que liaisons d’entrée, liaisons de sortie, ou les deux. Les données issues des liaisons sont fournies à la fonction en tant que paramètres.

Vous pouvez combiner différentes liaisons selon vos besoins. Les liaisons sont facultatives. Chaque fonction peut avoir une ou plusieurs liaisons d’entrée et de sortie.

Les déclencheurs et les liaisons vous évitent d’avoir à coder en dur l’accès aux autres services. Votre fonction reçoit des données (par exemple, le contenu d’un message de la file d’attente) dans les paramètres de fonction. Vous envoyez des données (par exemple pour créer un message de la file d’attente) en utilisant la valeur de retour de la fonction.

Prenons les exemples suivants pour voir comment implémenter différentes fonctions.

Exemple de scénario Déclencheur Liaison d’entrée Liaison de sortie
Un nouveau message en file d’attente arrive et exécute une fonction pour écrire des données dans une autre file d’attente. File d’attente* Aucun File d’attente*
Une tâche planifiée lit le contenu du stockage d’objets blob et crée un document Cosmos DB. Minuterie Stockage Blob Cosmos DB
Event Grid est utilisé pour lire une image du stockage d’objets blob et un document de Cosmos DB pour envoyer un e-mail. Event Grid Stockage Blob et Cosmos DB SendGrid
Webhook qui utilise Microsoft Graph pour mettre à jour une feuille Excel. HTTP Aucun Microsoft Graph

* Représente différentes files d’attente

La liste de ces exemples n’est pas exhaustive. Elle a pour but d’illustrer comment utiliser des déclencheurs et des liaisons ensemble.

Définitions de liaisons et de déclencheurs

La définition des déclencheurs et des liaisons varie selon le langage de développement.

Langage Déclencheurs et liaisons configurés par…
Bibliothèque de classes C#      la décoration des méthodes et des paramètres à l’aide d’attributs C#
Java      Décoration des méthodes et des paramètres avec des annotations Java
JavaScript/PowerShell/Python/TypeScript      la mise à jour de function.json (schéma)

Pour les langages qui s’appuient sur function.json, le portail fournit une interface utilisateur pour l’ajout de liaisons sous l’onglet Intégration. Vous pouvez également modifier le fichier directement dans le portail sous l’onglet Code + test de votre fonction. Visual Studio Code vous permet d’ajouter facilement une liaison à un fichier function.json en suivant une série d’invites simple.

Dans .NET et Java, le type de paramètre définit le type des données d’entrée. Par exemple, utilisez string pour établir une liaison au texte d’un déclencheur de file d’attente, un tableau d’octets à lire au format binaire et un type personnalisé pour désérialiser sur un objet. Dans la mesure où les fonctions des bibliothèques de classes .NET et les fonctions Java ne s’appuient pas sur function.json pour les définitions de liaison, elles ne peuvent pas être créées et modifiées dans le portail. La modification de code C# dans le portail est basée sur un script C#, qui utilise function.json au lieu d’utiliser des attributs.

Pour découvrir comment ajouter des liaisons à des fonctions existantes, consultez Connecter des fonctions à des services Azure en utilisant des liaisons.

Pour les langages dont le type est dynamique, tels que JavaScript, utilisez la propriété dataType dans le fichier dataType. Par exemple, pour lire le contenu d’une requête HTTP au format binaire, définissez dataType sur binary :

{
    "dataType": "binary",
    "type": "httpTrigger",
    "name": "req",
    "direction": "in"
}

Les autres options pour dataType sont stream et string.

Sens de la liaison

Tous les déclencheurs et liaisons ont une propriété direction dans le fichier direction :

  • Pour les déclencheurs, le sens est toujours in
  • Les liaisons d’entrée et de sortie utilisent in et out
  • Certaines liaisons prennent en charge un sens spécial inout. Si vous utilisez inout, seule l’option inout est disponible sous l’onglet Intégrer du portail.

Lorsque vous utilisez des attributs dans une bibliothèque de classes pour configurer les déclencheurs et les liaisons, la direction est fournie dans un constructeur d’attribut ou déduite du type du paramètre.

Ajouter des liaisons à une fonction

Vous pouvez connecter votre fonction à d’autres services en utilisant des liaisons d’entrée ou de sortie. Ajoutez une liaison en ajoutant ses définitions spécifiques à votre fonction. Pour savoir comment procéder, consultez Ajouter des liaisons à une fonction existante dans Azure Functions.

Liaisons prises en charge

Ce tableau présente les liaisons qui sont prises en charge dans les versions majeures du runtime Azure Functions :

Type 1.x 2.x et ultérieures1 Déclencheur Entrée Output
Stockage Blob
Azure Cosmos DB
Azure SQL (préversion)
Dapr3
Event Grid
Hubs d'événements
HTTP webhooks
IoT Hub
Kafka2
Mobile Apps
Notification Hubs
Stockage File d’attente
RabbitMQ2
SendGrid
Service Bus
SignalR
Stockage Table
Minuteur
Twilio

1 À compter du runtime de la version 2.x, toutes les liaisons à l’exception de HTTP et du minuteur doivent être inscrites. Consultez Inscrire des extensions de liaison.

2 Les déclencheurs ne sont pas pris en charge dans le plan Consommation. Nécessite des déclencheurs basés sur le runtime.

3 Pris en charge uniquement dans Kubernetes, IoT Edge et d’autres modes autohébergés uniquement.

Pour plus d’informations sur les liaisons en préversion ou approuvées pour la production, consultez Langages pris en charge.

Exemples de code de liaison

Utilisez le tableau suivant pour trouver des exemples de types de liaisons spécifiques qui vous montrent comment utiliser des liaisons dans vos fonctions. Tout d’abord, choisissez l’onglet du langage qui correspond à votre projet.

Service Exemples Exemples
Stockage Blob Déclencheur
Input
Sortie
Lien
Azure Cosmos DB Déclencheur
Input
Sortie
Lien
Azure SQL (préversion) Input
Sortie
Lien
Event Grid Déclencheur
Sortie
Lien
Event Hubs Déclencheur
Sortie
IoT Hub Déclencheur
Sortie
HTTP Déclencheur Lien
Stockage de files d'attente Déclencheur
Sortie
Lien
RabbitMQ Déclencheur
Sortie
SendGrid Sortie
Service Bus Déclencheur
Sortie
Lien
SignalR Déclencheur
Input
Sortie
Stockage de tables Input
Sortie
Minuteur Déclencheur Lien
Twilio Sortie Lien

Liaisons personnalisées

Vous pouvez créer des liaisons d’entrée et de sortie personnalisées. Les liaisons doivent être créées dans .NET, mais sont utilisables avec tous les langages pris en charge. Pour plus d’informations sur la création de liaisons personnalisées, consultez Création de liaisons d’entrée et de sortie personnalisées.

Ressources

Étapes suivantes