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 Azure Cosmos DB. Minuterie Stockage Blob Azure Cosmos DB
Event Grid est utilisé pour lire une image du stockage d’objets blob et un document d’Azure Cosmos DB pour envoyer un e-mail. Event Grid Stockage d’objets blob et Azure 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.x1 2.x et ultérieur2 Déclencheur Entrée Output
Stockage Blob
Azure Cosmos DB
Explorateur de données Azure
Azure SQL
Dapr4
Event Grid
Hubs d'événements
HTTP et Webhooks
IoT Hub
Kafka3
Mobile Apps
Notification Hubs
Stockage File d’attente
Redis
RabbitMQ3
SendGrid
Service Bus
SignalR
Stockage Table
Minuteur
Twilio

1La prise en charge de la version 1.x du runtime Azure Functions prendra fin le 14 septembre 2026. Nous vous recommandons fortement de migrer vos applications vers la version 4.x pour bénéficier d’une prise en charge complète.

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

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

4 Pris en charge seulement dans Kubernetes, IoT Edge et les 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.

Les versions d’extension de liaison spécifiques ne sont prises en charge que lorsque le Kit de développement logiciel (SDK) de service sous-jacent est pris en charge. Les modifications apportées à la prise en charge dans la version du Kit de développement logiciel (SDK) de service sous-jacent affectent la prise en charge de l’extension consommatrice.

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.

Le code de liaison pour C# dépend du modèle de processus spécifique.

Service Exemples Exemples
Stockage d'objets blob Déclencheur
Entrée
Sortie
Lien
Azure Cosmos DB Déclencheur
Entrée
Sortie
Lien
Explorateur de données Azure Input
Sortie
Lien
Azure SQL Déclencheur
Entrée
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
Entrée
Sortie
Stockage de tables Entrée
Sortie
Minuteur Déclencheur Lien
Twilio Sortie Lien
Service Exemples Exemples
Stockage d'objets blob Déclencheur
Entrée
Sortie
Lien
Azure Cosmos DB Déclencheur
Entrée
Sortie
Lien
Explorateur de données Azure Input
Sortie
Lien
Azure SQL Déclencheur
Entrée
Sortie
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
Entrée
Sortie
Stockage de tables Entrée
Sortie
Minuteur Déclencheur Lien
Twilio Sortie Lien
Service Exemples Exemples
Stockage d'objets blob Déclencheur
Entrée
Sortie
Lien
Azure Cosmos DB Déclencheur
Entrée
Sortie
Lien
Explorateur de données Azure Input
Sortie
Azure SQL Déclencheur
Entrée
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
Entrée
Sortie
Stockage de tables Entrée
Sortie
Minuteur Déclencheur Lien
Twilio Sortie Lien
Service Exemples Exemples
Stockage d'objets blob Déclencheur
Entrée
Sortie
Lien
Azure Cosmos DB Déclencheur
Entrée
Sortie
Lien
Azure SQL Déclencheur
Entrée
Sortie
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
Entrée
Sortie
Stockage de tables Entrée
Sortie
Minuteur Déclencheur Lien
Twilio Sortie Lien

Le code de liaison pour Python dépend de la version du modèle Python.

Service Exemples Exemples
Stockage d'objets blob Déclencheur
Entrée
Sortie
Lien
Azure Cosmos DB Déclencheur
Entrée
Sortie
Lien
Explorateur de données Azure Input
Sortie
Azure SQL Déclencheur
Entrée
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
Entrée
Sortie
Stockage de tables Entrée
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