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 !

L’architecture basée sur les événements (EDA) est un modèle d’intégration de données courant qui implique la production, la détection, la consommation et 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 devez envoyer les événements à une rubrique Event Grid. Data Factory s'abonne à la rubrique, écoute, puis déclenche les pipelines en conséquence.

Notes

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 du fournisseur de ressources Data Factory. Sinon, vous obtiendrez un message d’erreur indiquant que la création d’un abonnement aux événements 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 de l'événement personnalisé, trigger run échoue. Vous obtenez une erreur indiquant que l'expression ne peut pas être évaluée parce que la propriété keyName n'existe pas. Dans ce cas, aucunepipeline run n’est déclenchée par l’événement.

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 à Azure 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 Azure Event Grid et les tutoriels de CLI.

Notes

Le workflow diffère de celui du 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 à Azure 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. Sur la page Ajouter des déclencheurs, sélectionnez Choisir un déclencheur, puis +Nouveau.

  5. Sélectionnez le TypeÉvénements personnalisés.

    Screenshot of Author page to create a new custom event trigger in Data Factory UI.

  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.

    Notes

    Pour créer ou modifier un déclencheur d'événements personnalisé dans Data Factory, vous devez utiliser un compte Azure avec un contrôle d'accès en fonction du rôle (Azure RBAC) approprié. Aucune autorisation supplémentaire 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 (le sujet commence par) et Subject ends with (le sujet se termine par) 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é présentant une propriété eventType correspondant à une propriété 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.

    Screenshot of Edit Trigger page to explain Event Types and Subject filtering in Data Factory UI.

  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 sur 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 une explication détaillée, consultez les articles suivants :

    Screenshot of pipeline parameters settings.

    Screenshot of the parameters page to reference data payload in custom event.

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

Filtrage avancé

Le déclencheur d’événements personnalisé prend en charge des fonctionnalités de filtrage avancées, similaires au filtrage avancé Event Grid. Ces filtres conditionnels permettent aux pipelines d’être déclenchés en fonction des valeurs de la charge utile d’événement. Par exemple, vous pouvez avoir un champ dans la charge utile d’événement, nommé Department, 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], le champ tag qui contient l’un des éléments de [’Fiscal Year 2021’, ’FiscalYear2021’, ’FY2021’].

Screenshot of setting advanced filters for customer event trigger

À partir d’aujourd’hui, le déclencheur d’événement personnalisé supporte 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.

En outre, les déclencheurs d’événements personnalisés obéissent 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énements personnalisé
  • 512 caractères par valeur de type chaîne
  • 5 valeurs pour les opérateurs dans et pas dans
  • les clés ne peuvent pas comporter de 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 de l’API Event Grid. À mesure que les nouvelles versions d’API sont en phase de mise à la disposition générale, Data Factory étend sa prise en charge pour les 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. String Non
subjectEndsWith Le champ subject doit se terminer par le modèle fourni pour que le déclencheur s'active. String 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 en fonction du rôle

Azure Data Factory utilise le contrôle d’accès en fonction du rôle (RBAC) Azure pour interdire tout accès non autorisé. 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 en affichant le message d'erreur Accès refusé.

Data Factory n'a besoin d'aucune autorisation spéciale pour 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.

  • Lors de la création dans la fabrique de données (dans l’environnement de développement par exemple), le compte Azure connecté doit disposer de l’autorisation ci-dessus.
  • Lors d’une publication via CI/CD, le compte utilisé pour publier le modèle ARM dans la fabrique de test ou de production doit disposer de l’autorisation ci-dessus.