Concepts des déclencheurs et liaisons Azure FunctionsAzure Functions triggers and bindings concepts

Dans cet article, vous allez découvrir des concepts généraux concernant les déclencheurs et les liaisons des fonctions.In this article you learn the high-level concepts surrounding functions triggers and bindings.

Les déclencheurs sont à l’origine de l’exécution d’une fonction.Triggers are what cause a function to run. Un déclencheur définit la façon dont une fonction est appelée. Chaque fonction est associée à un seul déclencheur.A trigger defines how a function is invoked and a function must have exactly one trigger. Les déclencheurs sont associés à des données, qui sont souvent fournies comme la charge utile de la fonction.Triggers have associated data, which is often provided as the payload of the function.

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.Binding to a function is a way of declaratively connecting another resource to the function; bindings may be connected as input bindings, output bindings, or both. Les données issues des liaisons sont fournies à la fonction en tant que paramètres.Data from bindings is provided to the function as parameters.

Vous pouvez combiner différentes liaisons selon vos besoins.You can mix and match different bindings to suit your needs. Les liaisons sont facultatives. Chaque fonction peut avoir une ou plusieurs liaisons d’entrée et de sortie.Bindings are optional and a function might have one or multiple input and/or output bindings.

Les déclencheurs et les liaisons vous évitent d’avoir à coder en dur l’accès aux autres services.Triggers and bindings let you avoid hardcoding access to other 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.Your function receives data (for example, the content of a queue message) in function parameters. 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.You send data (for example, to create a queue message) by using the return value of the function.

Prenons les exemples suivants pour voir comment implémenter différentes fonctions.Consider the following examples of how you could implement different functions.

Exemple de scénarioExample scenario DéclencheurTrigger Liaison d’entréeInput binding Liaison de sortieOutput binding
Un nouveau message en file d’attente arrive et exécute une fonction pour écrire des données dans une autre file d’attente.A new queue message arrives which runs a function to write to another queue. File d’attente*Queue* AucunNone File d’attente*Queue*
Une tâche planifiée lit le contenu du stockage d’objets blob et crée un document Cosmos DB.A scheduled job reads Blob Storage contents and creates a new Cosmos DB document. MinuteurTimer Stockage BlobBlob Storage Cosmos DBCosmos 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.The Event Grid is used to read an image from Blob Storage and a document from Cosmos DB to send an email. Event GridEvent Grid Stockage d’objets blob et Cosmos DBBlob Storage and Cosmos DB SendGridSendGrid
Webhook qui utilise Microsoft Graph pour mettre à jour une feuille Excel.A webhook that uses Microsoft Graph to update an Excel sheet. HTTPHTTP AucunNone Microsoft GraphMicrosoft Graph

* Représente différentes files d’attente* Represents different queues

La liste de ces exemples n’est pas exhaustive. Elle est fournie pour montrer comment vous pouvez utiliser les déclencheurs et les liaisons ensemble.These examples are not meant to be exhaustive, but are provided to illustrate how you can use triggers and bindings together.

Définitions de liaisons et de déclencheursTrigger and binding definitions

La définition des déclencheurs et des liaisons varie selon l’approche de développement.Triggers and bindings are defined differently depending on the development approach.

PlateformePlatform Déclencheurs et liaisons configurés par…Triggers and bindings are configured by...
Bibliothèque de classes C#C# class library      la décoration des méthodes et des paramètres à l’aide d’attributs C#     decorating methods and parameters with C# attributes
Toutes les autres (y compris le portail Azure)All others (including Azure portal)      la mise à jour de function.json (schéma)     updating function.json (schema)

Le portail fournit une interface utilisateur pour cette configuration. Toutefois, vous pouvez modifier le fichier directement en ouvrant l’Éditeur avancé qui est disponible sous l’onglet Intégrer de votre fonction.The portal provides a UI for this configuration, but you can edit the file directly by opening the Advanced editor available via the Integrate tab of your function.

Dans .NET, le type de paramètre définit le type des données d’entrée.In .NET, the parameter type defines the data type for input data. 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 dans un objet.For instance, use string to bind to the text of a queue trigger, a byte array to read as binary and a custom type to de-serialize to an object.

Pour les langages dont le type est dynamique, tels que JavaScript, utilisez la propriété dataType dans le fichier function.json.For languages that are dynamically typed such as JavaScript, use the dataType property in the function.json file. Par exemple, pour lire le contenu d’une requête HTTP au format binaire, définissez dataType sur binary :For example, to read the content of an HTTP request in binary format, set dataType to binary:

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

Les autres options pour dataType sont stream et string.Other options for dataType are stream and string.

Sens de la liaisonBinding direction

Tous les déclencheurs et liaisons ont une propriété direction dans le fichier function.json :All triggers and bindings have a direction property in the function.json file:

  • Pour les déclencheurs, le sens est toujours inFor triggers, the direction is always in
  • Les liaisons d’entrée et de sortie utilisent in et outInput and output bindings use in and out
  • Certaines liaisons prennent en charge un sens spécial inout.Some bindings support a special direction inout. Si vous utilisez inout, seule l’option Éditeur avancé est disponible sous l’onglet Intégrer du portail.If you use inout, only the Advanced editor is available via the Integrate tab in the portal.

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.When you use attributes in a class library to configure triggers and bindings, the direction is provided in an attribute constructor or inferred from the parameter type.

Liaisons prises en chargeSupported bindings

Ce tableau présente les liaisons qui sont prises en charge dans les deux versions majeures du runtime Azure Functions.This table shows the bindings that are supported in the two major versions of the Azure Functions runtime:

TypeType 1.x1.x 2.x12.x1 DéclencheurTrigger EntréeInput OutputOutput
Stockage BlobBlob storage
Cosmos DBCosmos DB
Event GridEvent Grid
Hubs d'événementsEvent Hubs
HTTP et WebhooksHTTP & webhooks
IoT HubIoT Hub
Microsoft Graph
Tableaux Excel
Microsoft Graph
Excel tables
Microsoft Graph
Fichiers OneDrive
Microsoft Graph
OneDrive files
Microsoft Graph
E-mail Outlook
Microsoft Graph
Outlook email
Microsoft Graph
événements
Microsoft Graph
events
Microsoft Graph
Jetons d’authentification
Microsoft Graph
Auth tokens
Mobile AppsMobile Apps
Notification HubsNotification Hubs
Stockage de files d’attenteQueue storage
SendGridSendGrid
Service BusService Bus
SignalRSignalR
Stockage TableTable storage
MinuteurTimer
TwilioTwilio

1 Dans le runtime de la version 2.x, toutes les liaisons à l’exception de HTTP et du minuteur doivent être inscrites.1 In the version 2.x runtime, all bindings except HTTP and Timer must be registered. Consultez Inscrire des extensions de liaison.See Register binding extensions. Toutes les liaisons 2.x prises en charge sont aussi prises en charge dans la version 3.x, sauf indication contraire.All supported 2.x bindings are also supported in the version 3.x, unless otherwise noted.

Pour plus d’informations sur les liaisons en préversion ou approuvées pour la production, consultez Langages pris en charge.For information about which bindings are in preview or are approved for production use, see Supported languages.

RessourcesResources

Étapes suivantesNext steps