Tous les produits
Search
Centre de documentation

DataWorks:Développer une extension avec un service auto-géré

Dernière mise à jour :Aug 20, 2026

Dans DataWorks, les extensions vous permettent de définir une logique personnalisée pour régir les opérations des utilisateurs, par exemple en interceptant et bloquant les actions inappropriées, en recevant des notifications pour des événements spécifiques ou en mettant en œuvre un contrôle des processus. Cette rubrique explique comment développer et déployer une extension à l'aide d'un service auto-géré.

Contexte

Prérequis

Vous avez activé l'abonnement aux messages d'événement. Le déploiement d'une extension via un service auto-géré s'appuie sur la capacité de distribution des messages d'EventBridge. Assurez-vous d'avoir configuré un bus d'événements dans EventBridge pour recevoir les messages d'événements ouverts de DataWorks, et que les messages de ce bus sont acheminés vers votre service déployé sur site ou dans le cloud.

Limites

  • Seuls les utilisateurs de l'édition Enterprise de DataWorks peuvent utiliser le module Extensions.

  • Le module Extensions est disponible dans les régions suivantes : Chine (Pékin), Chine (Hangzhou), Chine (Shanghai), Chine (Zhangjiakou), Chine (Shenzhen), Chine (Chengdu), États-Unis (Silicon Valley), États-Unis (Virginie), Allemagne (Francfort), Japon (Tokyo), Chine (Hong Kong) et Singapour.

Remarques d'utilisation

  • Seuls l'Open Platform administrator, l'tenant administrator, les comptes Alibaba Cloud et les utilisateurs RAM auxquels la stratégie AliyunDataWorksFullAccess est attachée disposent des autorisations de lecture et d'écriture sur le backend développeur. Pour plus d'informations sur la gestion des autorisations, consultez les rubriques Contrôle des autorisations pour les services globaux et Stratégies RAM pour les autorisations de service et de console.

  • Limites liées à la version : Si votre abonnement à l'édition Enterprise de DataWorks expire, toutes les extensions deviennent inactives et ne peuvent plus déclencher de vérifications d'événements. Les vérifications déjà déclenchées mais n'ayant pas encore atteint un état final sont automatiquement validées.

  • Limites liées aux nœuds : Lorsqu'un nœud composite contenant des nœuds internes, tel qu'un nœud Platform for AI, un nœud do-while ou un nœud for-each, déclenche une vérification, tous les nœuds internes doivent réussir la vérification avant que les opérations suivantes ne puissent se poursuivre.

  • Déclenchement : Vous pouvez associer plusieurs extensions au même événement de point d'extension. Un seul événement peut ainsi déclencher plusieurs extensions.

Fonctionnement

Le diagramme suivant illustre le flux de travail de base pour le déploiement d'une extension avec un service auto-géré qui consomme des messages via EventBridge.

image
Remarque

Après le déclenchement d'un événement de point d'extension, le processus associé passe à l'état Checking en attendant que l'extension renvoie un résultat via un rappel API. Le processus reste dans cet état jusqu'à ce que l'extension envoie le résultat à DataWorks. En fonction du résultat renvoyé, DataWorks décide de bloquer ou non le processus.

Développer le service

Avant de déployer une extension dans DataWorks, vous devez la développer et la déployer sur site ou dans le cloud. Vous pouvez initialiser votre projet à l'aide du code de la bibliothèque d'exemples de code de la plateforme ouverte DataWorks et trouver d'autres exemples dans le code exemple de la plateforme ouverte sur GitHub. Lors du développement de l'extension, vous devez la déployer en fonction du type de service qui reçoit les messages acheminés depuis le bus d'événements.

Étape 1 : Configurer les dépendances

Lors du développement d'une extension, ajoutez les dépendances suivantes au fichier pom.xml. EventBridge prend en charge divers types d'endpoints pour traiter et consommer les événements. Outre les dépendances ci-dessous, vous devrez peut-être en ajouter d'autres selon la cible d'événement configurée dans EventBridge.

Bibliothèque de dépendances DataWorks

<dependency>
 <groupId>com.aliyun</groupId>
 <artifactId>dataworks_public20200518</artifactId>
 <version>5.6.0</version>
</dependency>

Plugin d'empaquetage

<build>
        <plugins>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-shade-plugin</artifactId>
                  <version>3.2.1</version>
                  <executions>
                    <execution>
                      <phase>package</phase>
                      <goals>
                        <goal>shade</goal>
                      </goals>
                      <configuration>
                        <filters>
                          <filter>
                            <artifact>*:*</artifact>
                            <excludes>
                              <exclude>META-INF/*.SF</exclude>
                              <exclude>META-INF/*.DSA</exclude>
                              <exclude>META-INF/*.RSA</exclude>
                            </excludes>
                          </filter>
                        </filters>
                      </configuration>
                    </execution>
                  </executions>
              </plugin>
        </plugins>
</build>

Étape 2 : Développer le code de l'extension

Le bus d'événements d'EventBridge achemine les messages vers votre service déployé. Ce service reçoit les messages DataWorks provenant du bus d'événements, les traite, puis appelle une API DataWorks spécifique pour renvoyer le résultat du traitement.

  1. Développez le code du service.

    Analyser le contenu du message

    Pour connaître le format des messages d'événements envoyés par DataWorks, consultez l'Annexe : Format des messages envoyés de DataWorks à EventBridge. Dans un message, le champ data contient le contenu spécifique du message. Pendant le développement, identifiez le type de message à l'aide du champ data.eventCode et récupérez les détails du message via le champ id.

    Remarque

    OpenEvent utilise EventBridge pour distribuer les messages d'événements DataWorks. Avant de développer une extension, abonnez-vous aux messages DataWorks dans EventBridge. Pour plus d'informations, consultez la rubrique Activer l'abonnement aux messages d'événement.

    Écrire la logique de traitement

    Traitez les messages du bus d'événements selon vos besoins métier. Utilisez les méthodes suivantes pour améliorer l'efficacité du développement et les performances de l'application :

    • Utilisez l'fonctionnalité avancée : Configurer les paramètres d'une extension. Par exemple, utilisez le paramètre extension.project.disabled pour désactiver l'extension pour un espace de travail spécifique.

    • Lors du traitement des points d'extension liés au module DataStudio, appelez l'opération GetIDEEventDetail et utilisez le MessageId pour obtenir un instantané des données au moment du déclenchement de l'événement de point d'extension.

    Remarque

    Le paramètre MessageId correspond au champ id du message d'événement. Pour plus d'informations, consultez l'Annexe : Format des messages envoyés de DataWorks à EventBridge.

    Renvoyer le résultat à DataWorks

    Votre service doit renvoyer le résultat du traitement à DataWorks en appelant une opération OpenAPI. L'opération API spécifique à appeler dépend du module à l'origine de l'événement de point d'extension.

    • Événements de point d'extension dans DataStudio : Appelez l'opération UpdateIDEEventResult pour renvoyer le résultat du traitement.

    • Événements de point d'extension dans Operation Center : Appelez l'opération UpdateWorkbenchEventResult pour renvoyer le résultat du traitement.

    • Événements de point d'extension dans d'autres modules : Appelez l'opération CallbackExtension pour renvoyer le résultat du traitement.

    La requête API de rappel doit inclure les paramètres suivants : l'extension à laquelle le service s'applique (ExtensionCode), le message d'événement (MessageId) et le résultat du traitement (CheckResult).

    • CheckResult : Résultat du traitement. Valeurs possibles :

      • OK : La vérification de l'extension a réussi pour cet événement de point d'extension.

      • FAIL : La vérification de l'extension a échoué pour cet événement de point d'extension. Identifiez et corrigez l'erreur pour garantir le bon déroulement des processus suivants.

      • WARN : La vérification de l'extension a réussi pour cet événement de point d'extension, mais un avertissement a été généré.

    • ExtensionCode : Après avoir enregistré l'extension, récupérez ce code depuis la page de liste des extensions dans DataWorks.

    • MessageId : Correspond au champ id du message. Pour plus d'informations, consultez l'Annexe : Format des messages envoyés de DataWorks à EventBridge.

  2. Une fois le code développé, empaquetez l'application dans un fichier exécutable .jar pour le déploiement.

Étape 3 : Déployer l'extension

Après avoir développé et débogué le code de l'extension, déployez le code empaqueté en tant que service d'application sur une instance ECS ou un serveur d'un autre fournisseur.

Configurer l'extension dans DataWorks

Une fois le code développé, enregistrez et gérez l'extension dans DataWorks.

Étape 1 : Enregistrer l'extension

Pour développer et utiliser une extension, enregistrez-la d'abord dans DataWorks afin d'obtenir l'ExtensionCode requis pour la suite du développement. Procédez comme suit :

  1. Connectez-vous à l'console DataWorks. Dans la région cible, cliquez sur More > Open Platform dans le volet de navigation de gauche. Cliquez sur Go to Open Platform pour ouvrir la page Developer Backend.

  2. Enregistrez l'extension.

    1. Dans le volet de navigation de gauche, cliquez sur Extensions pour ouvrir la page des extensions.

    2. Cliquez sur List of Extensions > Register Extension, sélectionnez Deploy Based on Self-managed Service et configurez les informations de l'extension.

      Description des paramètres

      Paramètre

      Description

      Extension Name

      Un nom personnalisé pour identifier l'extension.

      Processed Extension Points

      Sélectionnez les événements de point d'extension gérés par cette extension. Pour la liste des points d'extension pris en charge, consultez la rubrique Liste des événements de point d'extension pris en charge. Sélectionnez les événements d'extension selon vos besoins métier.

      Remarque
      • Après avoir sélectionné un point d'extension, les champs Event et Applicable Service sont automatiquement renseignés.

      • Limite des événements de point d'extension : Les événements de point d'extension sont soit au niveau du locataire, soit au niveau de l'espace de travail. Vous ne pouvez sélectionner qu'un seul type d'événement lors de l'enregistrement d'une extension. Pour plus d'informations sur les niveaux d'événements pris en charge par DataWorks, consultez la rubrique Référence du développeur : Liste des événements et format des messages.

      • Les extensions déployées à l'aide de Function Compute prennent actuellement en charge uniquement l'événement pré-téléchargement de données.

      Owner

      Le propriétaire de l'extension. Les utilisateurs peuvent contacter le propriétaire en cas de problème.

      Workspace for Testing

      Sélectionnez un espace de travail pour tester l'extension. L'extension est active dans l'espace de travail de test avant sa publication.

      Avant de publier l'extension, effectuez des tests de bout en bout dans l'espace de travail de test. Déclenchez un événement pour vérifier si DataWorks peut envoyer des messages via EventBridge et si l'extension peut recevoir, vérifier et envoyer des messages de rappel.

      Remarque

      Si vous sélectionnez un événement de point d'extension au niveau du locataire pour Processed Extension Points, vous n'avez pas besoin de configurer Workspace for Testing.

      Extension Details Address

      Saisissez l'URL d'une page fournissant des détails sur l'extension. Cela aide les utilisateurs à mieux comprendre et utiliser l'extension.

      Développez une page affichant les détails de l'extension et configurez l'URL de cette page pour ce paramètre. Ainsi, lorsque l'extension déclenche une vérification, les utilisateurs peuvent cliquer sur le lien pour afficher le processus de vérification complet, y compris le chemin de vérification et la raison du blocage.

      Extension Documentation Address

      Saisissez l'URL du document d'aide de l'extension. Ce document est destiné aux utilisateurs de l'extension.

      Développez une page de document d'aide pour l'extension et configurez l'URL de cette page pour ce paramètre. Cela permet aux utilisateurs de prendre connaissance de la logique de vérification et des propriétés de l'extension.

      Parameters for Extension

      DataWorks vous permet d'utiliser des paramètres pour améliorer l'efficacité du développement et de l'application des extensions. Lors du développement du code de l'extension, ajoutez les paramètres que vous souhaitez appliquer dans cette section.

      Utilisez les paramètres intégrés fournis par DataWorks pour les scénarios typiques ou définissez des paramètres personnalisés.

      Vous pouvez ajouter plusieurs paramètres. Ajoutez un paramètre par ligne au format key=value.

      Remarque

      Par exemple, utilisez le paramètre d'extension intégré extension.project.disabled pour désactiver l'extension pour un espace de travail spécifique. Pour plus d'informations sur l'utilisation des paramètres, consultez la rubrique Fonctionnalité avancée : Configurer les paramètres d'une extension.

      Options for Extension

      Saisissez les options de configuration pour les utilisateurs de l'extension. Cela permet un contrôle personnalisé de l'extension dans différents espaces de travail. Les développeurs d'extensions doivent définir les options sous forme de chaîne JSON sur cette page.

      Par exemple, configurez des options pour permettre aux utilisateurs de l'extension de contrôler la longueur SQL. Pour plus d'informations sur le format JSON, consultez la rubrique Fonctionnalité avancée : Configurer les options d'une extension.

  3. Terminez l'enregistrement de l'extension.

    Cliquez sur OK pour terminer l'enregistrement.

    Remarque

    Une fois l'enregistrement terminé, affichez l'extension enregistrée sur la page List of Extensions.

Étape 2 : Publier l'extension

Après avoir développé, déployé et enregistré l'extension dans DataWorks, testez-la, approuvez-la et publiez-la. Une fois publiée, les administrateurs autres que le propriétaire de l'extension peuvent activer l'extension dans Management Center. Pour plus d'informations, consultez la rubrique Appliquer une extension.

Annexe : Format des messages de DataWorks vers EventBridge

Dans le code suivant, DataWorks pousse le contenu du champ data vers EventBridge. EventBridge y ajoute d'autres informations.

{
    "datacontenttype": "application/json;charset=utf-8", // The format of the content in the data field. The datacontenttype parameter supports only the application/json format.
    "aliyunaccountid": "1111",// The ID of the Alibaba Cloud account.
    "aliyunpublishtime": "2024-07-10T07:25:34.915Z",// The time when EventBridge received the event.
    "data": {
              
             "tenantId": 28378****10656,// The ID of the tenant. In DataWorks, each Alibaba Cloud account has a unique tenant ID. To find your ID, go to the DataStudio page and click the user information icon in the upper-right corner.
             "eventCode": "xxxx"//
            
    },
    "aliyunoriginalaccountid": "11111",
    "specversion": "1.0",
    "aliyuneventbusname": "default",// The name of the event bus in EventBridge that is used to receive event messages from DataWorks.
    "id": "45ef4dewdwe1-7c35-447a-bd93-fab****",// The unique ID of the event.
    "source": "acs.dataworks",// The event source. `acs.dataworks` indicates that DataWorks pushed the message.
    "time": "2024-07-10T15:25:34.897Z",// The time when the event was generated.
    "aliyunregionid": "cn-shanghai",// The region where the event was received.
    "type": "dataworks:ResourcesUpload:UploadDataToTable"// The event type. You can use this parameter in the EventBridge console to filter messages from DataWorks. The value of this parameter varies by event.
}
Remarque

Le contenu du champ data varie en fonction du type de message. Pour plus d'informations sur les messages d'événements, consultez la rubrique Référence du développeur : Liste des événements et format des messages.

Exemples d'extensions

Développez désormais du code d'extension personnalisé selon vos besoins métier. Les rubriques suivantes fournissent des exemples d'enregistrement, de développement et d'application d'extensions dans des scénarios typiques.

Documents connexes