All Products
Search
Document Center

DataWorks:Kembangkan dan terapkan ekstensi berdasarkan layanan yang dikelola sendiri

Last Updated:Feb 28, 2026

Ekstensi DataWorks memungkinkan Anda menentukan logika kustom untuk memantau tindakan pengguna. Misalnya, Anda dapat menggunakan ekstensi untuk mencegat dan memblokir tindakan yang tidak sesuai, mengirim Notifikasi, atau mengelola proses untuk event tertentu. Topik ini menjelaskan cara mengembangkan dan menerapkan ekstensi menggunakan layanan self-hosted.

Informasi latar belakang

Prasyarat

Anda harus mengaktifkan subscription pesan. Penerapan ekstensi menggunakan layanan self-hosted bergantung pada kemampuan distribusi pesan EventBridge. Anda harus memastikan bahwa pesan event terbuka DataWorks dikonfigurasi untuk dikirim ke event bus di EventBridge. Anda juga harus memastikan bahwa pesan dari event bus tersebut diarahkan ke program layanan yang diterapkan secara on-premises atau di cloud.

Batasan

  • Hanya pengguna DataWorks Edisi Perusahaan yang dapat menggunakan modul Extensions.

  • Modul Extensions tersedia di Wilayah berikut: Tiongkok (Beijing), Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Zhangjiakou), Tiongkok (Shenzhen), Tiongkok (Chengdu), AS (Silicon Valley), AS (Virginia), Jerman (Frankfurt), Jepang (Tokyo), Tiongkok (Hong Kong), dan Singapura.

Catatan

  • Hanya Open Platform administrator, tenant administrator, Akun Alibaba Cloud, dan Pengguna RAM yang memiliki Kebijakan AliyunDataWorksFullAccess yang dilampirkan yang memiliki izin baca dan tulis pada Backend developer. Untuk informasi selengkapnya tentang Pengelolaan izin, lihat Kontrol izin modul global dan Kelola akses tingkat produk dan Konsol dengan kebijakan RAM.

  • Batasan versi: Jika langganan DataWorks Edisi Perusahaan Anda kedaluwarsa, semua ekstensi menjadi tidak valid dan tidak dapat lagi memicu pemeriksaan event. Setiap pemeriksaan yang telah dipicu tetapi belum mencapai status akhir akan secara otomatis lolos.

  • Batasan node: Saat pemeriksaan dipicu untuk node komposit yang berisi node internal, seperti node pembelajaran mesin (PAI), node do-while, atau node for-each, semua node internal harus lolos pemeriksaan sebelum operasi berikutnya dapat dilanjutkan.

  • Deskripsi pemicu: Multiple ekstensi dapat dikaitkan dengan event titik ekstensi yang sama. Artinya, satu event dapat memicu multiple ekstensi.

Alur pemrosesan

Berikut ini menjelaskan alur dasar penggunaan program ekstensi deployment layanan self-built untuk mengonsumsi pesan dari EventBridge:

image
Catatan

Setelah event titik ekstensi dipicu, proses terkait memasuki status Checking dan menunggu hasil dari API callback ekstensi. DataWorks kemudian memutuskan apakah akan memblokir proses berdasarkan hasil tersebut.

Sisi pengguna

Sebelum menerapkan ekstensi di DataWorks menggunakan layanan self-hosted, Anda harus mengembangkan ekstensi dan menerapkannya di cloud atau on-premises. Anda dapat melihat Lampiran: Pustaka kode contoh Open Platform DataWorks untuk menginisialisasi kode proyek dan mendapatkan kode contoh Open Platform dari GitHub. Saat mengembangkan ekstensi, Anda harus mendasarkan pengembangan dan penerapan pada jenis layanan tempat pesan dari event bus pada akhirnya diarahkan.

Langkah 1: Konfigurasikan dependensi ekstensi

Saat mengembangkan ekstensi, tambahkan dependensi berikut ke file pom.xml. EventBridge mendukung berbagai jenis endpoint untuk memproses dan mengonsumsi event. Selain dependensi berikut, Anda dapat mengonfigurasi dependensi lain berdasarkan target event yang ditetapkan di EventBridge dan routing pesan akhir.

Pustaka dependensi DataWorks

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

Konfigurasi dependensi packaging

<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>

Langkah 2: Kembangkan kode ekstensi

Pesan yang diarahkan oleh event bus di EventBridge didorong ke layanan yang diterapkan secara on-premises atau di cloud. Layanan ini menerima pesan DataWorks yang didorong oleh event bus dan menggunakan API DataWorks tertentu untuk mengirim callback dengan hasil yang telah diproses.

  1. Kembangkan kode program.

    Uraikan konten pesan

    Untuk format pesan event yang didorong oleh DataWorks, lihat Lampiran: Format pesan yang dikirim dari DataWorks ke EventBridge. Dalam format pesan, data berisi konten pesan spesifik. Selama pengembangan, Anda dapat menggunakan bidang data.eventCode untuk mengidentifikasi jenis pesan dan bidang id untuk mengambil detail pesan.

    Catatan

    OpenEvent menggunakan EventBridge untuk mendistribusikan pesan event DataWorks. Sebelum mengembangkan ekstensi, Anda harus berlangganan pesan DataWorks di EventBridge. Untuk informasi selengkapnya, lihat Aktifkan subscription pesan.

    Tulis logika pemrosesan

    Proses pesan yang didorong oleh event bus sesuai kebutuhan. Selama pengembangan ekstensi, Anda dapat menggunakan metode berikut untuk meningkatkan efisiensi pengembangan dan kinerja aplikasi.

    • Gunakan Fitur lanjutan: Konfigurasikan parameter ekstensi, seperti extension.project.disabled, untuk menonaktifkan ekstensi untuk ruang kerja tertentu.

    • Saat memproses titik ekstensi yang terkait dengan modul Data Studio, Anda dapat memanggil API GetIDEEventDetail untuk mengambil Snapshot data dari waktu saat event titik ekstensi dipicu berdasarkan MessageId.

    Catatan

    MessageId berkorespondensi dengan bidang id dalam pesan. Untuk informasi selengkapnya, lihat Lampiran: Format pesan yang dikirim dari DataWorks ke EventBridge.

    Kembalikan hasil pemrosesan ke DataWorks

    Layanan ekstensi harus mengembalikan hasil pemrosesan untuk titik ekstensi ke DataWorks melalui OpenAPI. Saat melakukan callback, Anda harus memilih OpenAPI yang sesuai berdasarkan modul tempat event titik ekstensi terjadi.

    • Event titik ekstensi di DataStudio: Gunakan API UpdateIDEEventResult untuk mengirim callback yang berisi hasil pemrosesan.

    • Event titik ekstensi di Operation Center: Gunakan API UpdateWorkbenchEventResult untuk mengirim callback yang berisi hasil pemrosesan.

    • Event titik ekstensi di modul lain: Gunakan API CallbackExtension untuk mengirim callback yang berisi hasil pemrosesan.

    API callback mengembalikan ekstensi (ExtensionCode), pesan event (MessageId), dan hasil pemrosesan pesan (CheckResult) untuk layanan saat ini.

    • Nilai CheckResult:

      • OK: Ekstensi lolos pemeriksaan untuk event titik ekstensi ini.

      • FAIL: Ekstensi gagal dalam pemeriksaan untuk event titik ekstensi ini. Anda harus segera melihat dan menangani error untuk mencegah dampak pada eksekusi program berikutnya.

      • WARN: Ekstensi lolos pemeriksaan untuk event titik ekstensi ini, tetapi dengan peringatan.

    • ExtensionCode: Anda dapat memperoleh kode ini dari halaman daftar ekstensi di DataWorks setelah mendaftarkan ekstensi seperti yang dijelaskan di bagian berikut.

    • MessageId: Berkorespondensi dengan bidang ID dalam pesan. Untuk informasi selengkapnya, lihat Format pesan yang dikirim dari DataWorks ke EventBridge.

  2. Setelah kode dikembangkan, Anda dapat memaketkan program menjadi file .jar yang dapat dijalankan untuk penerapan layanan selanjutnya.

Langkah 3: Terapkan ekstensi

Setelah mengembangkan dan men-debug kode ekstensi, Anda dapat menerapkan kode yang telah dipaketkan sebagai layanan aplikasi di ECS Alibaba Cloud atau penyedia layanan lainnya.

Sisi produk DataWorks

Setelah menyelesaikan pengembangan kode, Anda dapat mendaftarkan dan mengelola ekstensi di Konsol DataWorks.

Langkah 1: Daftarkan ekstensi

Sebelum dapat mengembangkan dan menggunakan ekstensi, Anda harus mendaftarkannya di DataWorks untuk mendapatkan Extension Code yang sesuai untuk pengembangan selanjutnya. Prosedur berikut menjelaskan cara mendaftarkan ekstensi.

  1. Buka tab Developer Backend.

    Masuk ke Konsol DataWorks. Di bilah navigasi atas, pilih Wilayah yang diinginkan. Di panel navigasi kiri, pilih More > Open Platform. Di halaman yang muncul, klik Go to Open Platform. Tab Developer Backend akan muncul.

  2. Daftarkan ekstensi.

    1. Di panel navigasi kiri, klik Extensions untuk membuka halaman Extensions.

    2. Klik Extension List > Register Extension. Pilih Deploy with a self-hosted service dan konfigurasikan detail ekstensi.

      Deskripsi parameter

      Parameter

      Cara mengonfigurasi

      Extension Name

      Nama kustom untuk ekstensi, digunakan untuk identifikasi.

      Extension Points to Process

      Pilih jenis pesan event ekstensi yang akan diproses oleh ekstensi ini. Untuk daftar titik ekstensi yang didukung, lihat Daftar event titik ekstensi yang didukung. Pilih titik ekstensi sesuai kebutuhan.

      Catatan
      • Setelah Anda membuat pilihan, antarmuka secara otomatis mencocokkan Event dan Applicable Module. Tidak diperlukan konfigurasi manual.

      • Batasan event titik ekstensi: Event titik ekstensi dibagi menjadi tingkat tenant dan tingkat ruang kerja. Saat mendaftarkan ekstensi, Anda hanya dapat memilih satu tingkat event titik ekstensi. Untuk tingkat setiap event titik ekstensi yang didukung di DataWorks, lihat Referensi pengembangan: Daftar event dan format pesan.

      • Ekstensi yang diterapkan menggunakan Function Compute saat ini hanya mendukung Pre-Data-Download Event.

      Owner

      Pemilik ekstensi. Hal ini memungkinkan pengguna menghubungi pemilik jika mengalami masalah.

      Test Workspace

      Pilih ruang kerja untuk menguji ekstensi. Ekstensi berlaku di ruang kerja uji tanpa perlu dipublikasikan.

      Sebelum ekstensi dipublikasikan, developer dapat melakukan pengujian dan validasi end-to-end di ruang kerja uji. Dengan memicu event, mereka dapat menguji apakah DataWorks mengirim pesan melalui EventBridge dan apakah ekstensi menerima, meninjau, serta mengirim callback untuk pesan tersebut.

      Catatan

      Jika Anda memilih event titik ekstensi tingkat tenant untuk Extension Points to Process, Anda tidak perlu mengonfigurasi Test Workspace.

      Extension Details URL

      Masukkan URL halaman yang menyediakan detail tentang ekstensi. Hal ini membantu pengguna memahami dan menggunakan ekstensi dengan lebih baik.

      Anda dapat mengembangkan halaman detail untuk ekstensi dan mengonfigurasi URL-nya di sini. Hal ini memungkinkan pengguna melihat proses validasi lengkap, seperti jalur pemeriksaan dan alasan pemblokiran, saat ekstensi dipicu.

      Extension Document URL

      Masukkan URL dokumen bantuan untuk ekstensi.

      Anda dapat mengembangkan halaman dokumen bantuan untuk ekstensi dan mengonfigurasi URL-nya di sini. Hal ini memungkinkan pengguna mempelajari logika validasi dan properti ekstensi.

      Extension Parameter Settings

      DataWorks mendukung penggunaan parameter selama pengembangan untuk meningkatkan efisiensi. Tambahkan parameter yang perlu digunakan dalam kode ekstensi di sini.

      Anda dapat menggunakan parameter bawaan untuk skenario umum yang disediakan oleh DataWorks, atau Anda dapat menentukan sendiri.

      Anda dapat menambahkan beberapa parameter, satu per baris, dalam format key=value.

      Catatan

      Sebagai contoh, Anda dapat menggunakan parameter bawaan extension.project.disabled untuk menonaktifkan ekstensi untuk ruang kerja tertentu. Untuk informasi selengkapnya tentang penggunaan parameter, lihat Fitur lanjutan: Konfigurasikan parameter ekstensi.

      Extension Option Settings

      Masukkan item konfigurasi untuk pengguna ekstensi. Hal ini memungkinkan kontrol personalisasi ekstensi di ruang kerja yang berbeda. Developer ekstensi harus menentukan opsi di sini sebagai string JSON.

      Sebagai contoh, Anda dapat menggunakan pengaturan opsi agar pengguna dapat mengontrol panjang SQL sendiri. Untuk format JSON, lihat Fitur lanjutan: Konfigurasikan pengaturan opsi ekstensi.

  3. Selesaikan pendaftaran ekstensi.

    Klik OK untuk menyelesaikan.

    Catatan

    Setelah pendaftaran berhasil, Anda dapat melihat ekstensi di Extension List.

Langkah 2: Publikasikan ekstensi

Setelah ekstensi dikembangkan, diterapkan, dan didaftarkan di DataWorks, Anda harus menyelesaikan proses pengujian, persetujuan, dan penerbitan. Kemudian, administrator selain pemilik ekstensi dapat mengaktifkan ekstensi di Management Center. Untuk informasi selengkapnya, lihat Terapkan ekstensi.

Lampiran: Format pesan yang dikirim dari DataWorks ke EventBridge

Dalam konten berikut, bidang `data` berisi konten yang didorong oleh DataWorks ke EventBridge. EventBridge menambahkan informasi lain ke dasar ini.

{
    "datacontenttype": "application/json;charset=utf-8", // Format konten dalam parameter data. datacontenttype hanya mendukung format application/json.
    "aliyunaccountid": "1111",// ID Akun Alibaba Cloud.
    "aliyunpublishtime": "2024-07-10T07:25:34.915Z",// Waktu ketika EventBridge menerima event.
    "data": {
              
             "tenantId": 28378****10656,// ID tenant. Setiap Akun Alibaba Cloud berkorespondensi dengan satu tenant di DataWorks, dan setiap tenant memiliki ID-nya sendiri. Anda dapat menemukan nilai ini di bagian informasi pengguna di pojok kanan atas Data Studio DataWorks.
             "eventCode": "xxxx"// Kode event.
            
    },
    "aliyunoriginalaccountid": "11111",
    "specversion": "1.0",
    "aliyuneventbusname": "default",// Nama event bus EventBridge yang digunakan untuk menerima pesan event DataWorks.
    "id": "45ef4dewdwe1-7c35-447a-bd93-fab****",// ID event. Nilai unik yang mengidentifikasi event.
    "source": "acs.dataworks",// Sumber event, yaitu layanan yang menyediakan event. Ini menunjukkan bahwa pesan didorong oleh DataWorks.
    "time": "2024-07-10T15:25:34.897Z",// Waktu ketika event terjadi.
    "aliyunregionid": "cn-shanghai",// Wilayah tempat event diterima.
    "type": "dataworks:ResourcesUpload:UploadDataToTable"// Jenis event. Anda dapat menggunakan jenis event ini di Konsol EventBridge untuk memfilter semua pesan yang didorong oleh DataWorks. Nilai Type berbeda untuk setiap event.
}
Catatan

Konten bidang `data` bervariasi berdasarkan jenis pesan. Untuk informasi selengkapnya tentang setiap pesan event, lihat Referensi pengembangan: Daftar event dan format pesan.

Contoh ekstensi

Setelah memahami catatan pengembangan untuk ekstensi, Anda dapat mengembangkan kode ekstensi Anda sendiri sesuai kebutuhan. Topik berikut memberikan contoh pendaftaran, pengembangan, dan penerapan ekstensi dalam skenario umum.

Referensi