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 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.
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é
Accédez à Data Factory et connectez-vous.
Basculez vers l'onglet Modifier. Recherchez l'icône en forme de crayon.
Sélectionnez Déclencheur dans le menu, puis choisissez Nouveau/Modifier.
Dans la page Ajouter des déclencheurs, sélectionnez Choisir un déclencheur, puis + Nouveau.
Sous Type, sélectionnez Événements personnalisés.
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.
Les propriétés
Subject begins with
etSubject ends with
vous permettent de filtrer les événements déclencheurs. Les deux propriétés sont facultatives.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énementscopycompleted
oucopysucceeded
dont le sujet commence par factories.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 :
- Référencer des métadonnées de déclencheur dans des pipelines
- Variables système dans le déclencheur d'événements personnalisé
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].
À 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
etnot in
. - Les clés ne peuvent pas contenir le caractère
.
(point), par exemplejohn.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.
Contenu connexe
- Obtenir des informations détaillées sur l'exécution des déclencheurs
- Apprendre à référencer des métadonnées de déclencheur dans des exécutions de pipeline