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
etout
- Certaines liaisons prennent en charge un sens spécial
inout
. Si vous utilisezinout
, seule l’optioninout
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
- Modèles et expressions de liaison
- Utilisation de la valeur de retour Azure Functions
- Guide pratique pour inscrire une expression de liaison
- Test :
- Gestion des erreurs de liaison