Les déclencheurs DataWorks permettent une planification pilotée par les événements en écoutant les événements externes, tels que le téléchargement de nouveaux fichiers OSS ou l'arrivée de messages Kafka, et en lançant les workflows associés à la demande. Cette approche élimine le gaspillage de ressources et les retards liés à l'interrogation périodique. Cette rubrique explique comment créer, configurer et gérer les déclencheurs.
Fonctionnement
Un déclencheur DataWorks surveille des événements prédéfinis. Lorsqu'un événement spécifié se produit, le déclencheur lance le workflow piloté par les événements associé et transmet les informations relatives à l'événement sous forme de paramètres.
-
Sources d'événements multiples : les déclencheurs surveillent les événements provenant de différentes sources.
Événements de stockage externe : surveillance de la création de nouveaux objets dans un bucket OSS.
Événements de messagerie externe : surveillance des nouveaux messages dans les files d'attente de messages telles que Kafka et RocketMQ.
-
Transmission dynamique des paramètres : lorsqu'un événement est détecté, le déclencheur capture le contexte de l'événement et le transmet au workflow en aval sous forme de paramètres.
Pour les événements OSS : détails du fichier.
Pour les événements de file d'attente de messages : contenu complet du message, y compris la clé, la valeur et les en-têtes.
Les nœuds du workflow peuvent ensuite utiliser ces paramètres pour traiter les données en fonction de l'événement.
-
Types pris en charge :
Files d'attente de messages : Kafka, RocketMQ et RabbitMQ.
Objets de stockage : OSS.
Notes d'utilisation
Régions : disponible uniquement dans les régions Chine (Hangzhou), Chine (Pékin), Chine (Zhangjiakou), Chine (Ulanqab), Chine (Shenzhen), Chine (Hong Kong) et Singapour.
Éditions : disponible uniquement dans l'édition Professionnelle de DataWorks ou une édition ultérieure. Pour mettre à niveau, consultez la rubrique Mettre à niveau DataWorks vers l'édition Professionnelle ou une édition ultérieure.
Facturation
Lorsqu'un workflow piloté par les événements s'exécute avec un déclencheur configuré, des frais EventBridge sont facturés en plus des frais liés à l'exécution des tâches planifiées. Consultez la rubrique Facturation des flux d'événements. La facturation est basée sur le nombre d'événements.
Prérequis
Activez EventBridge et accordez les autorisations et activez le service Message Service.
Une source d'événements située dans la même région que votre espace de travail, telle qu'une instance OSS ou une file d'attente de messages cloud (Kafka, RocketMQ ou RabbitMQ), disposant des autorisations d'accès requises.
Un utilisateur ajouté à l'espace de travail avec le rôle Developer, Operator, or Workspace Administrator. Consultez la rubrique Gérer les membres et les rôles.
Accéder à la page de gestion des déclencheurs
-
Connectez-vous à la console DataWorks. Dans la région cible, cliquez sur dans le volet de navigation de gauche. Sélectionnez un espace de travail dans la liste déroulante et cliquez sur Go to Operation Center.
Dans le volet de navigation de gauche d'Operation Center, choisissez , puis cliquez sur l'onglet Trigger Management.
Créer un déclencheur
Si vous disposez du rôle développeur, opérateur ou administrateur de l'espace de travail, vous pouvez créer un déclencheur dans l'onglet Trigger Management.
-
Cliquez sur le bouton Create Trigger pour accéder à la page de configuration Create Trigger.
RemarqueLe déclenchement d'événements DataWorks dépend d'EventBridge. Si vous utilisez cette fonctionnalité pour la première fois ou si le rôle lié au service requis est manquant, cliquez sur Authorize pour accorder l'accès.
Autorisations requises :
ram:CreateServiceLinkedRoleetarms:CheckServiceStatus. Consultez la liste des autorisations.
-
Configurez les paramètres suivants.
Déclencheur Kafka
Paramètre
Description
Applicable Workspace
Sélectionnez l'espace de travail. Seuls les espaces de travail disposant du nouveau Data Studio sont pris en charge.
Applicable Environment
Les déclencheurs s'appliquent uniquement à l'environnement de production. Dans l'environnement de développement, vous devez spécifier les paramètres manuellement.
Owner
Sélectionnez le propriétaire du déclencheur.
Trigger Type
Sélectionnez ApsaraMQ for Kafka.
Trigger Event
Le type d'événement
alikafka:Topic:Messageest pris en charge : le déclencheur s'active lorsque des messages Kafka arrivent. Pour savoir comment envoyer des messages, consultez la rubrique Envoyer et recevoir des messages Kafka.Kafka Instance
Sélectionnez une instance Kafka dans la même région que l'espace de travail. Si aucune instance n'existe, Achetez une instance Kafka.
Topic
Sélectionnez le topic à surveiller. Si aucun topic n'existe, Créez un topic.
Key
Facultatif. Spécifiez une valeur de clé prédéfinie. Le déclencheur s'active uniquement lorsque la clé du message correspond exactement. Si ce champ est laissé vide, tout message consommé déclenche le workflow.
ConsumerGroupId
Sélectionnez Quick Create ou Use Existing. L'option Quick Create génère automatiquement un ID de groupe.
Message Format Example
Exemple de message Kafka fixe. Vous pouvez l'utiliser dans le workflow déclenché.
Vous pouvez utiliser ${workflow.triggerMessage} dans les tâches internes pour obtenir le corps complet du message, ou utiliser ${workflow.triggerMessage.xxx} pour obtenir la valeur d'un champ spécifique dans le corps du message.
Déclencheur RocketMQ
Paramètre
Description
Applicable Workspace
Sélectionnez l'espace de travail. Seuls les espaces de travail disposant du nouveau Data Studio sont pris en charge.
Applicable Environment
Les déclencheurs s'appliquent uniquement à l'environnement de production. Dans l'environnement de développement, vous devez spécifier les paramètres manuellement.
Owner
Sélectionnez le propriétaire du déclencheur.
Trigger Type
Sélectionnez ApsaraMQ for RocketMQ.
RemarqueLes versions antérieures à la 5.x ne sont pas prises en charge. La version 5.x est utilisée par défaut.
Trigger Event
Le type d'événement
mq:Topic:SendMessageest pris en charge : le déclencheur s'active lorsque des messages RocketMQ sont consommés.ApsaraMQ for RocketMQ Instance
Sélectionnez une instance RocketMQ dans la même région que l'espace de travail. Si aucune instance n'existe, Gérer les instances RocketMQ.
Topic
Sélectionnez le topic à surveiller. Si aucun topic n'existe, Créer un topic.
Tag
Facultatif. Spécifiez une valeur de tag prédéfinie. Le déclencheur s'active uniquement lorsque le tag du message correspond exactement. Si ce champ est laissé vide, tout message consommé déclenche le workflow.
Security Group
Si l'instance RocketMQ utilise la facturation par abonnement, vous pouvez sélectionner un groupe de sécurité.
Consumer Group
Sélectionnez Quick Create ou Use Existing. L'option Quick Create génère automatiquement un ID de groupe.
Message Format Example
Exemple de message RocketMQ fixe. Vous pouvez l'utiliser dans le workflow déclenché.
Vous pouvez utiliser ${workflow.triggerMessage} dans les tâches internes pour obtenir le corps complet du message, ou utiliser ${workflow.triggerMessage.xxx} pour obtenir la valeur d'un champ spécifique dans le corps du message.
Déclencheur RabbitMQ
Paramètre
Description
Applicable Workspace
Sélectionnez l'espace de travail. Seuls les espaces de travail disposant du nouveau Data Studio sont pris en charge.
Applicable Environment
Les déclencheurs s'appliquent uniquement à l'environnement de production. Dans l'environnement de développement, vous devez spécifier les paramètres manuellement.
Owner
Sélectionnez le propriétaire du déclencheur.
Trigger Type
Sélectionnez ApsaraMQ for RabbitMQ.
Trigger Event
Le type d'événement
amqp:Queue:SendMessageest pris en charge : le déclencheur s'active lorsque des messages RabbitMQ sont consommés.ApsaraMQ for RabbitMQ Instance
Sélectionnez une instance RabbitMQ dans la même région que l'espace de travail. Si aucune instance n'existe, Créez une instance RabbitMQ.
Vhost
Hôte virtuel RabbitMQ, utilisé pour l'isolation logique des files d'attente. Si aucun hôte virtuel n'existe, Créez un vhost.
Queue
Sélectionnez la file d'attente à surveiller. Si aucune file d'attente n'existe, Créez une file d'attente.
Message Format Example
Exemple de corps de message RabbitMQ. Vous pouvez l'utiliser dans le workflow déclenché.
Vous pouvez utiliser ${workflow.triggerMessage} dans les tâches internes pour obtenir le corps complet du message, ou utiliser ${workflow.triggerMessage.xxx} pour obtenir la valeur d'un champ spécifique dans le corps du message.
Déclencheur OSS
Paramètre
Description
Applicable Workspace
Sélectionnez l'espace de travail. Seuls les espaces de travail disposant du nouveau Data Studio sont pris en charge.
Applicable Environment
Les déclencheurs s'appliquent uniquement à l'environnement de production. Dans l'environnement de développement, vous devez spécifier les paramètres manuellement.
Owner
Sélectionnez le propriétaire du déclencheur.
Trigger Type
OSS.
Trigger Event
Trois types d'événements sont pris en charge :
-
oss:ObjectCreated:PutObject : Télécharger un fichier.
-
oss:ObjectCreated:PostObject : Télécharger un fichier à l'aide d'un formulaire HTML.
-
oss:ObjectCreated:CompleteMultipartUpload : Finaliser un téléchargement multipartie.
Bucket Name
Sélectionnez le bucket OSS à utiliser comme source d'événements. Si aucun bucket n'existe, créez un bucket OSS.
File Name
Spécifiez le modèle de nom de fichier qui déclenche l'événement. La correspondance avec des caractères génériques est prise en charge :
-
Correspondance de préfixe :
-
Exemple :
task*. -
Description : un événement est déclenché lorsque vous téléchargez un fichier avec le préfixe
taskvers OSS, par exemple task10.txt.
-
-
Correspondance de suffixe :
-
Exemple :
*task.txt. -
Description : un événement est déclenché lorsque vous téléchargez un fichier avec le suffixe
task.txtvers OSS, par exemple work_task.txt.
-
-
Correspondance flexible :
-
Exemple :
task. -
Description : un événement est déclenché lorsque vous téléchargez un fichier contenant la chaîne
taskvers OSS, par exemple work_task.txt.
-
-
-
Cliquez sur Confirm pour terminer la création du déclencheur.
Utiliser un déclencheur
Un déclencheur doit être utilisé avec un workflow piloté par les événements. Seul un workflow piloté par les événements soumis à Operation Center peut être déclenché.
Une fois que le workflow piloté par les événements est soumis à Operation Center, les tâches du workflow sont automatiquement déclenchées lorsque l'événement surveillé se produit.
Configurer les paramètres de planification et spécifiez le déclencheur que vous avez créé dans Scheduling Policy.
-
Les nœuds d'un workflow piloté par les événements sont configurés de la même manière que les nœuds d'un workflow classique.
La principale différence réside dans le mécanisme d'exécution : au lieu de s'exécuter selon une planification fixe, le workflow est piloté par un déclencheur qui répond aux événements externes.
Gérer les déclencheurs
Dans l'onglet Trigger Management, trouvez le déclencheur cible pour afficher les tâches référencées, modifier le déclencheur ou afficher et restaurer les versions.
View Nodes That Reference Calendar : lorsque le déclencheur est référencé par un workflow piloté par les événements, cliquez sur View Nodes That Reference Calendar dans la colonne Actions pour voir quels workflows référencent le déclencheur sur la page View Nodes That Reference Calendar.
-
Edit un déclencheur : Cliquez sur Edit dans la colonne Actions. Modifiez les informations du déclencheur sur la page Modify Trigger et cliquez sur Confirm.
RemarqueLe système crée automatiquement une nouvelle version pour le déclencheur après modification.
-
Afficher Version :
Cliquez sur Version dans la colonne Actions pour afficher toutes les versions historiques sur la page View Versions.
Cliquez sur View dans la colonne Actions pour afficher les détails de la version.
-
Pour restaurer une version historique, cliquez sur Roll Back à côté de la version. Saisissez des Remarks de restauration et cliquez sur OK.
RemarqueUne restauration génère automatiquement une nouvelle version basée sur la version historique sélectionnée.
Supprimer un déclencheur : avant de supprimer un déclencheur, annulez le déploiement et supprimez toutes les tâches qui le référencent. Ensuite, cliquez sur Delete et cliquez sur Confirm pour confirmer.
Étapes suivantes
Après avoir créé un déclencheur, utilisez-le dans un workflow piloté par les événements. Consultez la rubrique Créer un workflow piloté par les événements.