Partager via


Envoyer, recevoir et traiter par lots des messages dans Azure Logic Apps

S’applique à : Azure Logic Apps (Consommation + Standard)

Pour envoyer et traiter des messages ensemble de façon spécifique en tant que groupes, vous pouvez créer une solution de traitement par lot. Cette solution collecte des messages dans un lot et attend que les critères spécifiés soient remplis avant de mettre en production et de traiter les messages traités par lot. Le traitement par lots peut réduire la fréquence à laquelle votre application logique traite les messages.

Ce guide pratique montre comment générer une solution de traitement par lot en créant deux applications logiques dans le même abonnement Azure, dans la même région Azure et dans l’ordre qui suit :

  1. L’application logique « réceptrice de lots », qui accepte et collecte les messages dans un lot jusqu’à ce que vos critères précisés soient remplis pour mettre en production et traiter ces messages. Veillez à commencer par la création du récepteur de lots, afin de pouvoir sélectionner ultérieurement la destination des lots lors de la création de l’expéditeur de lots.

  2. Une ou plusieurs applications logiques « expéditrices de lots », qui envoient les messages au récepteur de lots précédemment créé.

    L’expéditeur de lots peut spécifier une clé unique qui partitionne ou divise le lot cible en sous-ensembles logiques, en fonction de cette clé. Par exemple, un numéro de client est une clé unique. De cette façon, l’application réceptrice peut collecter tous les éléments avec la même clé et les traiter ensemble.

Votre récepteur et votre expéditeur de lots doivent partager le même abonnement et la même région Azure. Si ce n’est pas le cas, vous ne pouvez pas sélectionner le récepteur de lots lorsque vous créez l’expéditeur de lots, car ils ne sont pas visibles entre eux.

Prérequis

Limites

  • Vous pouvez vérifier le contenu d’un lot après la mise en production uniquement en comparant le contenu mis en production avec la source.

  • Vous pouvez mettre en production un lot à l’avance uniquement en modifiant les critères de mise en production dans le récepteur de lots, tel que décrit dans ce guide, alors que le déclencheur conserve toujours le lot. Toutefois, le déclencheur utilise les critères de mise en production mis à jour pour tout message non envoyé.

Créer le récepteur de lots

Avant de pouvoir envoyer des messages à un lot, ce lot doit d’abord exister en tant que destination vers laquelle envoyer ces messages. Vous devez donc d’abord créer le flux de travail de l’application logique « récepteur de lot », qui commence par le Déclencheur de lot. De cette façon, quand vous créez le flux de travail de l’application logique « expéditeur de lot », vous pouvez sélectionner le flux de travail de l’application logique de récepteur de lot. Le récepteur de lots continue à collecter les messages jusqu’à ce que vos critères spécifiés soient remplis pour mettre en production et traiter ces messages. Alors que les récepteurs de lots n’ont pas besoin de connaître les expéditeurs de lots, les expéditeurs de lots, eux, doivent connaître la destination vers laquelle envoyer les messages.

  1. Dans le Portail Azure, créez une ressource d’application logique avec un flux de travail vide.

    Cet exemple crée une application logique de récepteur de lot et un flux de travail nommé BatchReceiver.

  2. Dans le Concepteur de flux de travail, sélectionnez Ajouter un déclencheur, puis suivez ces étapes générales pour ajouter le déclencheur Opérations de traitement par lots nommé Déclencheur de lot.

  3. Définissez les propriétés de déclencheur suivantes :

    Propriété Description
    Mode
    (Flux de travail de consommation uniquement)
    - Inline : Pour définir des critères de mise en production à l’intérieur du déclencheur de lots

    - Compte d’intégration : pour définir plusieurs configurations de critères de libération via un compte d’intégration. Avec un compte d’intégration, vous pouvez conserver ces configurations dans un seul emplacement plutôt que dans des ressources d’application logique distinctes.
    Nom du lot Nom de votre lot. Dans les flux de travail Consommation, cette propriété apparaît uniquement lorsque le Mode est défini sur Inline. Cet exemple utilise TestBatch.
    Critères de mise en production Critères à respecter avant de traiter chaque lot. Par défaut, le déclencheur de lot fonctionne en « mode inline ». Dans ce mode, vous définissez les critères de libération du lot à l’intérieur du déclencheur de lot.

    - Sur la base du nombre de messages : Mettez en production le lot en fonction du nombre de messages qu’il a collectés.

    - En fonction de la taille : Mettez en production le lot en fonction de la taille totale (en octets) de tous les messages qu’il a collectés.

    - Basé sur une planification : libère le lot selon une planification récurrente, qui spécifie un intervalle et une fréquence. Vous pouvez éventuellement sélectionner un fuseau horaire et fournir une date et une heure de début.

    Pour utiliser tous les critères spécifiés, sélectionnez toutes les options.
    Nombre de messages Nombre de messages à collecter dans le lot, par exemple 10 messages. La limite est de 8 000 messages par lot.
    Taille de lot Taille totale en octets des messages à collecter dans le lot (par exemple, 10 Mo). La taille limite est de 80 Mo par lot.
    Périodicité Intervalle et fréquence entre les mises en production de lots, par exemple 10 minutes. La périodicité minimale est de 60 secondes ou 1 minute. Les fractions de minutes sont arrondies à 1 minute. Vous pouvez éventuellement sélectionner un fuseau horaire et fournir une date et une heure de début.

    Remarque

    Si vous modifiez les critères de mise en production alors que le déclencheur a toujours des messages traités par lot mais non envoyés, celui-ci utilise les nouveaux critères de mise en production pour gérer les messages non envoyés.

    Cet exemple montre tous les critères. Toutefois, pour vos propres tests, vous pouvez n’utiliser qu’un seul critère :

    Capture d’écran montrant tous les critères du déclencheur de lot.

  4. Ajoutez maintenant une ou plusieurs actions qui traitent chaque lot.

    Pour cet exemple, ajoutez une action qui envoie un e-mail lorsque le déclencheur de lot est activé. Le déclencheur s’exécute et envoie un e-mail lorsque le lot contient 10 messages, atteint 10 Mo, ou au bout de 10 minutes.

    1. Sous le déclencheur de lot, sélectionnez le signe plus (+) >Ajouter une action.

    2. Suivez ces étapes générales pour ajouter une action qui envoie un e-mail, en fonction de votre fournisseur de messagerie.

      Par exemple, si vous avez un compte professionnel ou scolaire, comme @fabrikam.com ou @fabrikam.onmicrosoft.com, sélectionnez le connecteur Microsoft 365 Outlook. Si vous avez un compte personnel, tel que @outlook.com ou @hotmail.com, sélectionnez le connecteur Outlook.com. Cet exemple utilise le connecteur Microsoft 365 Outlook.

  5. Si vous y êtes invité, connectez-vous à votre compte e-mail.

  6. Définissez les propriétés d’action suivantes :

    • Dans la zone À, entrez l’adresse e-mail du destinataire. À des fins de test, vous pouvez utiliser votre propre adresse e-mail.

    • Cliquez dans la zone Sujet pour afficher les options de la liste de contenu dynamique (icône d’éclair) et de l’éditeur d’expression (icône de fonction). Sélectionnez l’icône d’éclair pour ouvrir la liste de contenu dynamique, puis sélectionnez le champ nommé Nom de la partition.

      Capture d’écran montrant la liste de contenu dynamique et le champ sélectionné pour la propriété Nom de la partition.

      Plus tard, dans l’expéditeur de lots, vous pouvez spécifier une clé de partition unique, afin de diviser le lot cible en plusieurs sous-ensembles logiques vers lesquels envoyer des messages. Chaque ensemble est associé à un numéro unique qui est généré par le flux de travail de l’application logique d’expéditeur de lot. Cette fonctionnalité permet d’utiliser un lot comprenant plusieurs sous-ensembles et de définir chaque sous-ensemble avec le nom que vous fournissez.

      Important

      Une partition a une limite de 5 000 messages ou 80 Mo. Si l’une ou l’autre des conditions est remplie, Azure Logic Apps peut libérer le lot, même quand la condition de libération définie n’est pas remplie.

    • Cliquez dans la zone Corps, sélectionnez l’icône d’éclair pour ouvrir la liste de contenu dynamique, puis sélectionnez le champ ID du message.

      Le concepteur de workflows ajoute automatiquement une boucle Pour tous autour de l’action d’envoi d’e-mail, car cette action traite la sortie de l’action précédente comme une collection plutôt que comme un lot.

      L’exemple suivant montre le volet d’informations après la sélection de la zone de titre Pour chaque sur le concepteur où Batched Items est le nom de la collection :

      Capture d’écran montrant la collection Batched Items avec les sorties des opérations précédentes.

  7. Enregistrez votre flux de travail. Vous venez de créer un récepteur de lots.

    Important

    Si vous utilisez Visual Studio Code, avant de passer à la section suivante, assurez-vous d’abord de déployer votre ressource d’application logique de récepteur de lot sur Azure. Sinon, vous ne pouvez pas sélectionner le flux de travail de l’application logique de récepteur de lot lorsque vous créez le flux de travail de l’application logique d’expéditeur de lot.

Créer l’expéditeur de lots

Créez maintenant un ou plusieurs flux de travail de l’application logique d’expéditeur de lot qui envoient des messages au flux de travail de l’application logique de récepteur de lot. Dans chaque expéditeur de lots, vous spécifiez le récepteur de lots avec le nom du lot, le contenu du message et tout autre paramètre nécessaire. Vous pouvez éventuellement fournir une clé de partition unique pour diviser le lot en sous-ensembles logiques pour la collecte des messages avec cette clé.

  • En vous assurant d’avoir créé et déployé votre récepteur de lots avant de créer votre expéditeur de lots, vous pouvez sélectionner le récepteur existant comme destinataire de lots. Alors que les récepteurs de lots n’ont pas besoin de connaître les expéditeurs de lots, les expéditeurs de lots, eux, doivent savoir où envoyer les messages.

  • Vérifiez que vos récepteur et expéditeur de lots partagent la même région et le même abonnement Azure. Si ce n’est pas le cas, vous ne pouvez pas sélectionner le récepteur de lots lorsque vous créez l’expéditeur de lots, car ils ne sont pas visibles entre eux.

  1. Créez une autre ressource d’application logique et un flux de travail nommé BatchSender.

    Remarque

    Si vous disposez d’une ressource d’application logique Standard, veillez à créer un flux de travail avec état, et non un flux de travail sans état, car le déclencheur Périodicité n’est pas disponible pour les flux de travail sans état.

  2. Suivez ces étapes générales pour ajouter le déclencheur Planifier appelé Périodicité.

    Cet exemple définit l’intervalle et la fréquence d’exécution du flux de travail de l’expéditeur sur une minute.

  3. Ajoutez une nouvelle étape pour envoyer des messages vers un lot.

    1. Sous le déclencheur Périodicité, sélectionnez le signe plus (+) >Ajouter une nouvelle action.

    2. Suivez ces étapes générales pour ajouter une action Opérations de traitement par lots nommée Envoyer au flux de travail du déclencheur de lot (flux de travail Consommation) ou Envoyer au lot (flux de travail Standard).

    3. Selon que vous disposez d’un flux de travail Consommation ou Standard, suivez les étapes correspondantes :

      Workflow Consommation

      Une fois que vous avez ajouté l’action Envoyer au flux de travail du déclencheur de lot, une liste apparaît et affiche uniquement les ressources de l’application logique avec des déclencheurs de lot qui existent dans le même abonnement Azure et dans la même région Azure que la ressource de l’application logique d’expéditeur de lot.

      1. Dans la liste des applications logiques, sélectionnez celle précédemment créée à utiliser comme récepteur de lot. Lorsque les déclencheurs disponibles s’affichent, sélectionnez le déclencheur nommé Batch_messages.

        Capture d’écran montrant le flux de travail Consommation avec le déclencheur Périodicité et l’action de l’expéditeur de lot qui sélectionne une ressource d’application logique de récepteur de lot et un déclencheur.

        Important

        Si vous utilisez Visual Studio Code et que vous ne voyez aucun récepteur de lot à sélectionner, vérifiez que vous avez précédemment créé et déployé votre récepteur de lot sur Azure. Si ce n’est pas le cas, découvrez comment déployer votre application logique de récepteur de lot sur Azure.

      2. Lorsque vous avez terminé, sélectionnez Ajouter une action.

      Workflow Standard

      Une fois que vous avez ajouté l’action Envoyer au lot, le volet d’action affiche les propriétés suivantes à l’étape suivante pour vous permettre de spécifier le nom du lot, le contenu du message, le nom du flux de travail et le nom du déclencheur. Vous pouvez spécifier des informations uniquement pour un flux de travail d’application logique de récepteur de lot avec un déclencheur de lot qui existe dans le même abonnement Azure et dans la même région Azure que votre application logique d’expéditeur de lot.

      Capture d’écran montrant le flux de travail Standard avec le déclencheur Périodicité et l’action nommée Envoyer au lot.

  4. Définissez les propriétés d’action du récepteur de lot suivantes :

    Propriété Description
    Nom du lot Nom défini par l’application logique de récepteur (TestBatch dans cet exemple)

    Important : le nom du lot est validé au moment de l’exécution et doit correspondre au nom spécifié par l’application logique de récepteur de lot. Si vous modifiez ce nom, l’expéditeur de lots échoue.
    Contenu du message Contenu du message que vous voulez envoyer. Consultez l’exemple suivant pour connaître la valeur à utiliser.
    Nom du flux de travail
    (Flux de travail Standard uniquement)
    Nom du flux de travail qui contient le déclencheur de lot.
    Nom du déclencheur Nom du déclencheur de lot dans le flux de travail de l’application logique de récepteur de lot. Dans les flux de travail Consommation, cette valeur est automatiquement remplie à partir de l’application logique de récepteur de lot sélectionnée.
    ID du flux de travail ID du flux de travail qui a le flux de travail de l’application logique de récepteur de lot du déclencheur de lot. Dans les flux de travail Consommation, cette valeur est automatiquement remplie à partir de l’application logique de récepteur de lot sélectionnée.

    Dans cet exemple, pour la valeur de propriété Contenu du message, ajoutez l’expression suivante qui insère la date et l’heure actuelles dans le contenu du message que vous envoyez au lot :

    1. Cliquez dans la zone Contenu du message pour afficher les options du contenu dynamique (icône d’éclair) et de l’éditeur d’expression (icône de fonction).

    2. Sélectionnez l’icône de fonction pour ouvrir l’éditeur d’expression.

    3. Dans l’éditeur, entrez la fonction nommée utcnow(), puis sélectionnez Ajouter.

      Workflow Consommation

      Capture d’écran montrant le flux de travail Consommation, le volet d’action de l’expéditeur de lot, la zone Contenu du message avec le curseur, l’éditeur d’expression avec la fonction utcNow et d’autres détails.

      Workflow Standard

      Capture d’écran montrant le flux de travail Standard, le volet d’action de l’expéditeur de lot, la zone Contenu du message avec le curseur, l’éditeur d’expression avec la fonction utcNow et d’autres détails.

  5. À présent, définissez une partition pour le lot.

    1. Dans le volet d’action de l’expéditeur de lot, dans la liste Paramètres avancés, sélectionnez les propriétés suivantes :

      Propriété Description
      Nom de partition Clé de partition unique facultative, à utiliser pour diviser le lot cible en sous-ensembles logiques et collecter les messages en fonction de cette clé.

      Pour cet exemple, consultez les étapes suivantes pour ajouter une expression qui génère un nombre aléatoire compris entre un et cinq.
      ID de message Identificateur de message facultatif, qui est un identificateur global unique (GUID) généré lorsqu’il est vide. Pour cet exemple, laissez cette valeur vide.
    2. Cliquez dans la zone Nom de la partition, puis sélectionnez l’option correspondant à l’éditeur d’expression (icône de fonction).

    3. Dans l’éditeur d’expression, entrez la fonction rand(1,6), puis sélectionnez Ajouter.

      Cet exemple génère un nombre compris entre un et cinq. Vous divisez donc ce lot en cinq partitions numérotées, définies dynamiquement par cette expression.

      Capture d’écran montrant la fonction nommée rand pour diviser le lot en partitions.

      Lorsque vous avez terminé, le flux de travail de votre expéditeur de lot ressemble maintenant à l’exemple suivant, en fonction du type de flux de travail de votre application logique :

      Workflow Consommation

      Capture d’écran montrant le flux de travail de l’application logique Consommation de l’expéditeur de lot terminée.

      Workflow Standard

      Capture d’écran montrant le flux de travail de l’application logique Standard de l’expéditeur de lot terminée.

  6. Enregistrez votre flux de travail.

Tester votre workflow

Pour tester votre solution de traitement par lot, laissez les flux de travail de vos applications logiques s’exécuter pendant quelques minutes. Vous allez commencer à recevoir des e-mails par groupes de cinq, tous avec la même clé de partition.

Votre application logique expéditrice de lots s’exécute toutes les minutes et génère un nombre aléatoire compris entre 1 et 5. L’expéditeur de lots utilise ce nombre aléatoire comme clé de partition pour le lot cible où vous envoyez les messages. Chaque fois que le lot comporte cinq éléments avec la même clé de partition, l’application logique réceptrice de lots se déclenche et envoie un e-mail pour chaque message.

Important

Une fois les tests terminés, veillez à désactiver ou à supprimer le flux de travail de votre application logique BatchSender pour arrêter l’envoi de messages et éviter de surcharger votre boîte de réception.