Partager via


Créer un déclencheur d’événements personnalisé pour exécuter un pipeline dans Azure Data Factory

S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics

Conseil

Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un pour les entreprises. Microsoft Fabric couvre tous les aspects, du déplacement des données à la science des données, en passant par l’analyse en temps réel, l’aide à la décision et la création de rapports. Découvrez comment démarrer un nouvel essai gratuitement !

Les déclencheurs d’événements dans Azure Data Factory vous permettent d’automatiser l’exécution de pipelines en fonction d’événements spécifiques qui se produisent dans vos sources de données. Il s’agit d’une fonctionnalité clé de l’architecture pilotée par les événements, qui permet l’intégration et le traitement des données en temps réel.

L’architecture basée sur les événements est un modèle d’intégration de données courant qui implique la production, la détection et la consommation d’événements ainsi que la réaction à des événements. Les scénarios d'intégration de données exigent souvent que les clients Azure Data Factory déclenchent des pipelines lorsque certains événements se produisent. L'intégration native de Data Factory à Azure Event Grid couvre désormais les rubriques personnalisées. Vous envoyez les événements à une rubrique Event Grid. Data Factory s'abonne à la rubrique, écoute, puis déclenche les pipelines en conséquence.

L’intégration décrite dans cet article dépend d’Azure Event Grid. Vérifiez que votre abonnement est inscrit auprès du fournisseur de ressources Event Grid. Pour plus d’informations, consultez les types et les fournisseurs de ressources. Vous devez être en mesure d'effectuer l'action Microsoft.EventGrid/eventSubscriptions/. Cette action fait partie du rôle intégré Contributeur EventGrid EventSubscription.

Important

Si vous utilisez cette fonctionnalité dans Azure Synapse Analytics, vérifiez que votre abonnement est également inscrit auprès d’un fournisseur de ressources Data Factory. Sinon, vous recevez un message indiquant que « la création d’un abonnement à un événement a échoué ».

Si vous combinez des paramètres du pipeline et un déclencheur d'événements personnalisé, vous pouvez analyser et référencer des charges utiles data personnalisées dans les exécutions de pipeline. Dans la mesure où le champ data d’une charge utile d’événement personnalisé est une structure clé-valeur JSON de forme libre, vous pouvez contrôler les exécutions de pipeline pilotées par les événements.

Important

Si une clé référencée dans le paramétrage est manquante dans la charge utile d’événement personnalisé, trigger run échoue. Vous obtenez un message indiquant que l’expression ne peut pas être évaluée parce que la propriété keyName n’existe pas. Dans ce cas, aucune exécution pipeline run n’est déclenchée par l’événement.

Cas d’usage des événements et des déclencheurs

Les déclencheurs peuvent être déclenchés par différents événements, notamment :

Blob créé : quand un nouveau fichier est chargé dans un conteneur spécifié. Blob supprimé : quand un fichier est supprimé du conteneur. Blob modifié : quand un fichier existant est mis à jour.

Vous pouvez utiliser des événements pour contrôler dynamiquement les exécutions de votre pipeline. Par exemple, quand un nouveau fichier de données est chargé dans le dossier « entrant » dans Stockage Blob Azure, un déclencheur peut démarrer automatiquement un pipeline pour traiter les données, ce qui garantit l’intégration des données au moment approprié.

Configurer une rubrique personnalisée dans Event Grid

Pour utiliser le déclencheur d'événements personnalisé dans Data Factory, vous devez d'abord configurer une rubrique personnalisée dans Event Grid.

Accédez à Event Grid et créez la rubrique vous-même. Pour plus d’informations sur la création de la rubrique personnalisée, consultez les tutoriels du portail Event Grid et les tutoriels Azure CLI.

Remarque

Le workflow diffère de celui d’un déclencheur d’événements de stockage. Ici, Data Factory ne configure pas la rubrique pour vous.

Data Factory s'attend à ce que les événements suivent le schéma d'événement Event Grid. Vérifiez que les charges utiles d’événement contiennent les champs suivants :

[
  {
    "topic": string,
    "subject": string,
    "id": string,
    "eventType": string,
    "eventTime": string,
    "data":{
      object-unique-to-each-publisher
    },
    "dataVersion": string,
    "metadataVersion": string
  }
]

Utiliser Data Factory pour créer un déclencheur d'événements personnalisé

  1. Accédez à Data Factory et connectez-vous.

  2. Basculez vers l'onglet Modifier. Recherchez l'icône en forme de crayon.

  3. Sélectionnez Déclencheur dans le menu, puis choisissez Nouveau/Modifier.

  4. Dans la page Ajouter des déclencheurs, sélectionnez Choisir un déclencheur, puis + Nouveau.

  5. Sous Type, sélectionnez Événements personnalisés.

    Capture d’écran montrant la création d’un déclencheur d’événement personnalisé dans l’interface utilisateur de Data Factory.

  6. Sélectionnez votre rubrique personnalisée dans la liste déroulante d’abonnement Azure ou entrez manuellement l’étendue de la rubrique d’événement.

    Remarque

    Pour créer ou modifier un déclencheur d’événement personnalisé dans Data Factory, vous devez utiliser un compte Azure avec le contrôle d’accès en fonction du rôle Azure (Azure RBAC) approprié. Aucune autre autorisation n’est requise. Le principal de service Data Factory n’a besoin d’aucune autorisation spéciale pour votre instance d’Event Grid. Pour plus d'informations sur le contrôle d'accès, consultez la section Contrôle d'accès en fonction du rôle.

  7. Les propriétés Subject begins with et Subject ends with vous permettent de filtrer les événements déclencheurs. Les deux propriétés sont facultatives.

  8. Utilisez + Nouveau pour ajouter les Types d’événements à utiliser comme filtres. La liste des déclencheurs d'événements personnalisés utilise une relation OR (OU). Lorsqu’un événement personnalisé avec une propriété eventType correspond à un événement de la liste, une exécution de pipeline est déclenchée. Le type de chiffrement ne tient pas compte de la casse. Par exemple, dans la capture d'écran suivante, le déclencheur correspond à tous les événements copycompleted ou copysucceeded dont le sujet commence par factories.

    Capture d’écran montrant la page Modifier le déclencheur pour expliquer les types d’événements et le filtrage de sujet dans l’interface utilisateur de Data Factory.

  9. Un déclencheur d'événements personnalisé peut analyser et envoyer une charge utile de data personnalisée à votre pipeline. Créez les paramètres du pipeline, puis renseignez les valeurs dans la page Paramètres. Utilisez le format @triggerBody().event.data._keyName_ pour analyser la charge utile de données et transmettre les valeurs aux paramètres du pipeline.

    Pour obtenir une explication détaillée, consultez :

    Capture d’écran montrant les paramètres du pipeline.

    Capture d’écran montrant la page des paramètres pour référencer la charge utile des données dans un événement personnalisé.

  10. Après avoir entré les paramètres, sélectionnez OK.

Filtrage avancé

Les déclencheurs d’événements personnalisés prennent en charge des fonctionnalités de filtrage avancées qui sont similaires au filtrage avancé d’Event Grid. Ces filtres conditionnels permettent le déclenchement des pipelines en fonction des valeurs de la charge utile d’événement. Par exemple, vous pouvez avoir un champ nommé Department dans la charge utile d’événement, et le pipeline doit se déclencher uniquement si Department est égal à Finance. Vous pouvez également spécifier une logique complexe, telle que le champ date dans la liste [1, 2, 3, 4, 5], le champ month qui n’est pas dans la liste [11, 12] et si le champ tag contient [Fiscal Year 2021, FiscalYear2021 ou FY2021].

Capture d’écran montrant la définition de filtres avancés pour un déclencheur d’événement client.

À partir d’aujourd’hui, les déclencheurs d’événements personnalisés prennent en charge un sous-ensemble d’opérateurs de filtrage avancés dans Event Grid. Les conditions de filtre suivantes sont prises en charge :

  • NumberIn
  • NumberNotIn
  • NumberLessThan
  • NumberGreaterThan
  • NumberLessThanOrEquals
  • NumberGreaterThanOrEquals
  • BoolEquals
  • StringContains
  • StringBeginsWith
  • StringEndsWith
  • StringIn
  • StringNotIn

Sélectionnez + Nouveau pour ajouter de nouvelles conditions de filtre.

Les déclencheurs d’événements personnalisés obéissent également aux mêmes limitations qu’Event Grid, notamment :

  • 5 filtres avancés et 25 valeurs de filtre pour tous les filtres par déclencheur d’événement personnalisé.
  • 512 caractères par valeur de chaîne.
  • 5 valeurs pour les opérateurs in et not in.
  • Les clés ne peuvent pas contenir le caractère . (point), par exemple john.doe@contoso.com. Actuellement, les caractères d’échappement ne sont pas pris en charge dans les clés.
  • La même clé peut être utilisée dans plusieurs filtres.

Data Factory s’appuie sur la dernière version en disponibilité générale (GA) de l’API Event Grid. À mesure que les nouvelles versions d’API passent en phase de disponibilité générale, Data Factory étend sa prise en charge aux opérateurs de filtrage plus avancés.

Schéma JSON

Le tableau suivant donne une vue d’ensemble des éléments de schéma associés à des déclencheurs d’événements personnalisés.

Élément JSON Description Type Valeurs autorisées Obligatoire
scope ID de ressource Azure Resource Manager de la rubrique Event Grid. String ID d’Azure Resource Manager Oui.
events Type des événements qui entraîne l’activation de ce déclencheur. Tableau de chaînes Oui, au moins une valeur est attendue.
subjectBeginsWith Le champ subject doit commencer par le modèle fourni pour que le déclencheur s'active. Par exemple, factories active uniquement le déclencheur pour les sujets d’événement qui commencent par factories. Chaîne Non.
subjectEndsWith Le champ subject doit se terminer par le modèle fourni pour que le déclencheur s'active. Chaîne Non.
advancedFilters Liste d’objets blob JSON, chacun spécifiant une condition de filtre. Chaque objet blob spécifie key, operatorType et values. Liste d’objets blob JSON Non.

Contrôle d’accès basé sur les rôles

Data Factory utilise Azure RBAC pour interdire les accès non autorisés. Pour fonctionner correctement, Data Factory a besoin d'un accès lui permettant d'effectuer les tâches suivantes :

  • Écouter les événements
  • S’abonner aux mises à jour des événements
  • Déclencher des pipelines liés à des événements personnalisés

Pour réussir à créer ou à mettre à jour un déclencheur d'événements personnalisé, vous devez vous connecter à Data Factory avec un compte Azure disposant d'un accès approprié. Sinon, l’opération échoue avec le message « Accès refusé ».

Data Factory ne nécessite aucune autorisation spéciale sur votre instance d’Event Grid. Il n’est pas non plus nécessaire d’attribuer une autorisation spéciale de rôle RBAC Azure au principal du service Data Factory pour l’opération.

En revanche, vous devez disposer d'une autorisation Microsoft.EventGrid/EventSubscriptions/Write sur /subscriptions/####/resourceGroups//####/providers/Microsoft.EventGrid/topics/someTopics.

  • Quand vous créez dans la fabrique de données (par exemple, dans l’environnement de développement), le compte Azure connecté doit disposer de l’autorisation précédente.
  • Quand vous publiez via intégration continue et livraison continue, le compte utilisé pour publier le modèle Azure Resource Manager dans la fabrique de test ou de production doit disposer de l’autorisation précédente.