Explorer les types de liaisons d’entrée et de sortie

Effectué

L’accès aux données et leur traitement sont des tâches clés dans de nombreuses solutions logicielles. Examinons certains de ces scénarios :

  • Il vous est demandé d’implémenter un moyen de déplacer les données entrantes d’Azure Blob Storage vers Azure Cosmos DB.
  • Vous souhaitez publier des messages entrants dans une file d’attente en vue d’un traitement par un autre composant de votre entreprise.
  • Votre service a besoin de récupérer les scores des joueurs dans une file d’attente et de mettre à jour un tableau de bord en ligne.

Tous ces exemples portent sur le déplacement de données. Si la source et les destinations des données sont différentes d’un scénario à l’autre, le modèle, lui, est similaire. Vous vous connectez à une source de données, puis vous lisez et écrivez des données. Azure Functions permet d’intégrer des données et des services à l’aide de liaisons.

Qu’est-ce qu’une liaison ?

Dans Azure Functions, les liaisons représentent un moyen déclaratif de se connecter à des données à partir de votre code. Elles facilitent l’intégration cohérente à des flux de données dans une fonction. Vous pouvez avoir plusieurs liaisons fournissant un accès à différents éléments de données. L’intégration est puissante, car vous pouvez vous connecter à des sources de données sans avoir à coder une logique de connexion spécifique (comme des connexions de base de données ou des interfaces d’API web).

Types de liaisons

Vous pouvez utiliser deux types de liaisons avec les fonctions :

  • Liaison d’entrée : se connecte à une source de données. Notre fonction peut lire des données à partir de ces sources d’entrée.

  • Liaison de sortie : se connecte à une destination de données. Notre fonction peut écrire des données dans ces destinations de sortie.

Il existe également des déclencheurs, types spéciaux de liaisons d’entrée entraînant l’exécution d’une fonction. Par exemple, une notification Azure Event Grid peut être configurée comme un déclencheur. Quand un événement se produit, la fonction s’exécute.

Types de liaisons prises en charge

Le type de liaison définit l’endroit où les données sont lues ou envoyées. Il existe une liaison pour répondre aux requêtes web et une large sélection de liaisons pour interagir directement avec divers services Azure et des services tiers.

Un type de liaison peut être utilisé comme entrée, comme sortie ou les deux. Par exemple, une fonction peut écrire dans la liaison de sortie de Stockage Blob, mais une mise à jour du Stockage Blob peut déclencher une autre fonction.

Les types de liaison courants sont les suivants :

  • Stockage Blob
  • Files d’attente Azure Service Bus
  • Azure Cosmos DB
  • Azure Event Hubs
  • Fichiers externes
  • Tables externes
  • Points de terminaison HTTP

Ces types sont un simple échantillon. Il en existe plus. Par ailleurs, les fonctions ont un modèle d’extensibilité pour ajouter des liaisons supplémentaires.

Propriétés de liaison

Trois propriétés sont requises dans toutes les liaisons, mais vous allez peut-être devoir fournir davantage de propriétés en fonction du type de liaison et de stockage utilisé.

  • Nom - Définit le paramètre de fonction permettant d’accéder aux données. Par exemple, dans une liaison d’entrée de file d’attente, cette propriété est le nom du paramètre de fonction qui reçoit le contenu du message de la file d’attente.

  • Type – Identifie le type de liaison. Par exemple, le type de données ou de service avec lequel vous souhaitez interagir.

  • Direction – Indique que les données de direction circulent. Par exemple, est-ce une liaison d’entrée ou de sortie ?

De plus, la plupart des types de liaisons ont également besoin d’une quatrième propriété :

  • Connexion - Fournit le nom d’une clé de paramètre d’application qui contient la chaîne de connexion. Les liaisons utilisent des chaînes de connexion stockées dans des paramètres d’application pour maintenir les secrets hors du code de fonction. Les chaînes de connexion rendent votre code plus configurable et plus sécurisé.

Créer une liaison

Les liaisons sont définies au format JSON. Une liaison est configurée dans le fichier de configuration de votre fonction. Ce fichier se nomme function.json et se trouve dans le même dossier que le code de votre fonction.

Examinons un exemple de liaison d’entrée :

    ...
    {
      "name": "headshotBlob",
      "type": "blob",
      "path": "thumbnail-images/{filename}",
      "connection": "HeadshotStorageConnection",
      "direction": "in"
    },
    ...

Pour créer cette liaison, nous effectuons les opérations suivantes :

  1. Nous créons une liaison dans notre fichier function.json.

  2. Nous indiquons la valeur de la variable name. Dans cet exemple, la variable contient les données d’objets blob.

  3. Nous indiquons le type de stockage. Dans l’exemple précédent, nous utilisons le Stockage Blob.

  4. Nous indiquons la propriété path, qui spécifie le conteneur et le nom de l’élément qu’il contient. La propriété path est obligatoire quand nous utilisons le déclencheur d’objet blob. Nous devons entrer cette propriété au format présenté ici, en mettant des accolades autour du nom de fichier dans le chemin. Cette syntaxe crée une expression de liaison avec laquelle vous pouvez référencer le nom de l’objet blob dans d’autres liaisons et dans le code de votre fonction. Dans cet exemple, un paramètre de la fonction nommé filename est rempli avec le nom de fichier de l’objet blob qui a déclenché la fonction.

  5. Nous indiquons le nom du paramètre de chaîne connection défini dans le fichier de paramètres de l’application. Le nom est utilisé comme clé pour trouver la chaîne de connexion à votre compte de stockage.

  6. Nous définissons la propriété direction avec la valeur in. Elle lit les données à partir de l’objet blob.

Les liaisons sont utilisées pour se connecter aux données dans votre fonction. Dans cet exemple, nous avons utilisé une liaison d’entrée pour nous connecter des images d’utilisateurs qui sont traitées comme des miniatures par notre fonction.