全部产品
Search
文档中心

DataWorks:Mengembangkan dan menerapkan ekstensi berdasarkan layanan yang dikelola sendiri

更新时间:Jul 06, 2025

Anda dapat mengonfigurasi logika kustom untuk sebuah ekstensi guna mengelola operasi di DataWorks, seperti memblokir operasi tertentu. Ekstensi mengembalikan hasil pemrosesan pada acara tertentu untuk mengimplementasikan kontrol proses di DataWorks. Topik ini menjelaskan cara mengembangkan dan menerapkan ekstensi berbasis layanan mandiri.

Informasi latar belakang

Prasyarat

Fitur langganan pesan acara telah diaktifkan. Pengembangan dan penerapan ekstensi berbasis layanan mandiri bergantung pada kemampuan distribusi pesan acara dari EventBridge. Pastikan Anda menentukan bus acara di EventBridge untuk menerima pesan acara dari DataWorks, serta menentukan layanan lokal atau berbasis cloud untuk menerima pesan acara dari bus acara tersebut.

Batasan

  • Hanya pengguna DataWorks Enterprise Edition yang dapat menggunakan modul Ekstensi.

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

Tindakan pencegahan

  • Hanya Open Platform administrator, tenant administrator, akun Alibaba Cloud, dan pengguna RAM dengan kebijakan AliyunDataWorksFullAccess yang memiliki izin baca dan tulis pada backend pengembang. Untuk informasi lebih lanjut tentang manajemen izin, lihat Kelola Izin pada Layanan Tingkat Global dan Kelola Izin pada Layanan DataWorks dan Entitas di Konsol DataWorks dengan Menggunakan Kebijakan RAM.

  • Jika DataWorks Enterprise Edition kedaluwarsa, ekstensi menjadi tidak valid dan tidak dapat dipicu untuk memeriksa titik perluasan acara. Jika ekstensi dipicu untuk memeriksa suatu acara dan tidak menyelesaikan pemeriksaan sebelum DataWorks Enterprise Edition kedaluwarsa, pemeriksaan akan dihentikan dan hasil Pemeriksaan Berhasil dikembalikan.

  • Jika node gabungan, seperti node Platform for AI, node do-while, atau node for-each, memicu pemeriksaan ekstensi, Anda harus menunggu hingga semua node dalam dari node gabungan tersebut lolos pemeriksaan sebelum melakukan operasi selanjutnya.

  • Anda dapat mengaitkan beberapa ekstensi dengan acara titik perluasan yang sama. Dengan cara ini, ekstensi yang terkait dipicu ketika acara terjadi.

Proses

Gambar berikut menunjukkan bagaimana ekstensi yang dikembangkan dan diterapkan berbasis layanan mandiri mengonsumsi pesan acara menggunakan EventBridge.

Catatan

Setelah ekstensi dipicu oleh acara titik perluasan, proses acara masuk ke status Checking. Setelah ekstensi mengirimkan hasil pemrosesan ke DataWorks dengan memanggil operasi API, DataWorks menentukan apakah akan memblokir proses tersebut.

Pengguna

Sebelum menerapkan ekstensi berbasis layanan mandiri di DataWorks, Anda harus mengembangkan ekstensi dan menerapkannya pada layanan lokal atau berbasis cloud. Anda dapat merujuk ke Lampiran: Perpustakaan Kode Sampel Platform Terbuka DataWorks untuk menginisialisasi kode proyek dan mendapatkan kode sampel untuk Platform Terbuka dari GitHub. Anda harus mengembangkan dan menerapkan ekstensi berdasarkan jenis layanan yang ingin Anda gunakan untuk menerima pesan acara dari bus acara yang Anda konfigurasikan.

Langkah 1: Konfigurasikan dependensi untuk ekstensi

Saat mengembangkan ekstensi, Anda harus menambahkan dependensi berikut ke file pom.xml. EventBridge memungkinkan Anda menggunakan berbagai jenis target acara untuk memproses dan mengonsumsi acara. Anda dapat mengonfigurasi dependensi lain berdasarkan target acara yang Anda tentukan.

Dependensi library DataWorks

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

Pengemasan dependensi

<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: Mengembangkan ekstensi

Pesan acara yang dirutekan oleh bus acara EventBridge didorong ke layanan lokal atau berbasis cloud. Layanan tersebut menerima pesan acara DataWorks yang didorong oleh bus acara dan memanggil operasi API DataWorks tertentu untuk mengirimkan hasil pemrosesan ke DataWorks.

  1. Kembangkan kode ekstensi.

    Mengurai pesan acara

    Untuk informasi tentang format pesan acara di DataWorks, lihat bagian Lampiran: Format Pesan dari topik "Referensi Pengembangan: Pesan Acara dan Format Pesan Acara". Dalam pesan acara, bidang data menentukan isi pesan. Selama pengembangan aktual, Anda dapat menggunakan bidang data.eventCode untuk mengonfirmasi tipe pesan dan bidang id untuk mendapatkan detail pesan.

    Catatan

    Modul OpenEvent dari DataWorks Open Platform mendistribusikan pesan acara DataWorks menggunakan EventBridge. Sebelum mengembangkan ekstensi, Anda harus mengaktifkan fitur langganan pesan acara di DataWorks.

    Tulis logika pemrosesan

    Tulis logika pemrosesan untuk pesan acara yang didorong oleh bus acara berdasarkan kebutuhan bisnis Anda. Saat mengembangkan kode ekstensi, Anda dapat menggunakan metode berikut untuk meningkatkan efisiensi pengembangan dan efek aplikasi:

    • Gunakan parameter ekstensi. Misalnya, Anda dapat mengonfigurasi parameter extension.project.disabled untuk mencegah ekstensi berlaku untuk ruang kerja yang ditentukan. Untuk informasi lebih lanjut, lihat Fitur Lanjutan: Konfigurasikan Parameter Ekstensi.

    • Konfigurasikan parameter MessageId dalam operasi GetIDEEventDetail untuk acara titik perluasan di DataStudio untuk mendapatkan snapshot acara titik perluasan.

    Catatan

    Parameter MessageId sesuai dengan bidang id dalam pesan acara. Untuk informasi lebih lanjut, lihat bagian Lampiran: Format Pesan dari topik "Referensi Pengembangan: Pesan Acara dan Format Pesan Acara".

    Kembalikan hasil pemrosesan ekstensi ke DataWorks

    Layanan tempat ekstensi diterapkan dapat memanggil operasi API untuk mengembalikan hasil pemrosesan acara titik perluasan yang ditentukan dalam ekstensi ke DataWorks. Operasi API bervariasi berdasarkan layanan DataWorks tempat acara titik perluasan tersebut berada.

    • Acara Titik Perluasan di DataStudio: Panggil operasi API UpdateIDEEventResult untuk mengembalikan hasil pemrosesan.

    • Acara Titik Perluasan di Operation Center: Panggil operasi API UpdateWorkbenchEventResult untuk mengembalikan hasil pemrosesan.

    • Acara Titik Perluasan di Layanan DataWorks Lainnya: Panggil operasi API CallbackExtension untuk mengembalikan hasil pemrosesan.

    Operasi API spesifik mengembalikan parameter respons berikut:

    • CheckResult: Hasil pemrosesan pesan acara. Nilai yang valid:

      • OK: Acara titik perluasan lolos pemeriksaan ekstensi.

      • FAIL: Acara titik perluasan gagal dalam pemeriksaan ekstensi. Anda harus memeriksa dan menangani kesalahan yang dilaporkan sesegera mungkin untuk memastikan layanan Anda berjalan sesuai harapan.

      • WARN: Acara titik perluasan lolos pemeriksaan ekstensi, tetapi peringatan dilaporkan untuk acara tersebut.

    • ExtensionCode: Kode ekstensi. Setelah Anda mendaftarkan ekstensi, Anda dapat melihat kode ekstensi di bagian Daftar Ekstensi halaman Ekstensi.

    • MessageId: ID pesan. Parameter ini sesuai dengan bidang id dalam pesan acara. Untuk informasi lebih lanjut, lihat bagian Lampiran: Format Pesan dari topik "Referensi Pengembangan: Pesan Acara dan Format Pesan Acara".

  2. Kemas ekstensi sebagai file .jar yang dapat dieksekusi.

Langkah 3: Terapkan ekstensi

Setelah mengembangkan dan men-debug kode ekstensi, Anda harus menerapkan paket kode sebagai layanan aplikasi pada instance Elastic Compute Service (ECS) Alibaba Cloud atau layanan cloud lainnya.

DataWorks

Setelah mengembangkan kode, Anda dapat mendaftarkan dan mengelola ekstensi di DataWorks.

Langkah 1: Daftarkan ekstensi

Sebelum menggunakan ekstensi, Anda harus mendaftarkan ekstensi di DataWorks dan mendapatkan kode ekstensi untuk pengembangan kode selanjutnya. Untuk mendaftarkan ekstensi, lakukan langkah-langkah berikut:

  1. Pergi ke tab Backend Pengembang.

    Masuk ke konsol DataWorks. Di bilah navigasi atas, pilih wilayah yang diinginkan. Di panel navigasi sisi kiri, pilih More > Open Platform. Pada halaman yang muncul, klik Go to Open Platform. Tab Developer Backend muncul.

  2. Daftarkan ekstensi.

    1. Di panel navigasi sisi kiri halaman yang muncul, klik Extensions.

    2. Klik Register Extension di bagian List of Extensions. Di langkah Pilih Metode Penyebaran wizard Daftarkan Ekstensi, atur parameter Pilih metode penyebaran untuk ekstensi Anda ke Deploy Based on Self-managed Service dan konfigurasikan parameter di langkah Daftarkan Ekstensi.

      Parameter

      Parameter

      Deskripsi

      Extension Name

      Nama ekstensi kustom, yang digunakan untuk mengidentifikasi ekstensi.

      Processed Extension Points

      Jenis acara titik perluasan yang ingin Anda periksa dengan ekstensi. Untuk informasi lebih lanjut tentang acara titik perluasan yang didukung, lihat Acara titik perluasan yang didukung. Anda dapat mengonfigurasi parameter ini berdasarkan kebutuhan bisnis Anda.

      Catatan
      • Setelah Anda mengonfigurasi parameter ini, sistem secara otomatis mengonfigurasi parameter Event dan Applicable Service.

      • Acara titik perluasan diklasifikasikan menjadi acara tingkat penyewa dan tingkat ruang kerja. Anda hanya dapat memilih satu jenis acara saat mendaftarkan ekstensi. Untuk informasi tentang jenis acara titik perluasan yang didukung oleh DataWorks, lihat Referensi pengembangan: Pesan acara dan format pesan acara.

      • Ekstensi yang diterapkan berdasarkan Function Compute hanya dapat memproses pra-acara untuk unduhan data.

      Owner

      Pemilik ekstensi. Pengguna ekstensi dapat menghubungi pemilik ekstensi sesegera mungkin saat mereka mengalami masalah.

      Workspace for Testing

      Ruang kerja yang digunakan untuk menguji ekstensi. Untuk memeriksa apakah ekstensi efektif, Anda tidak perlu menerbitkan ekstensi karena ruang kerja pengujian mendukung uji end-to-end yang memungkinkan Anda memeriksa apakah ekstensi bekerja sesuai harapan.

      Di ruang kerja pengujian, pengembang dapat memicu acara untuk memeriksa apakah DataWorks mengirimkan pesan terkait ke ekstensi menggunakan EventBridge dan apakah ekstensi memeriksa acara dan mengirimkan hasil pemeriksaan ke DataWorks.

      Catatan

      Jika extension point event that you want to process adalah acara titik perluasan tingkat penyewa, Anda tidak perlu mengonfigurasi parameter Workspace for Testing.

      Extension Details Address

      URL halaman detail ekstensi.

      Setelah Anda mengembangkan dan menerapkan ekstensi, Anda dapat mengembangkan halaman web untuk menampilkan cara kerja ekstensi. Atur parameter ini ke URL halaman sehingga pengguna dapat mengunjungi halaman web ini untuk lebih memahami dan menggunakan ekstensi. Misalnya, pengguna dapat mengunjungi halaman web untuk melihat alasan mengapa suatu proses diperiksa dan diblokir oleh ekstensi.

      Extension Documentation Address

      URL halaman dokumentasi ekstensi.

      Setelah Anda mengembangkan dan menerapkan ekstensi, Anda dapat mengembangkan halaman dokumentasi bantuan. Atur parameter ini ke URL halaman sehingga pengguna dapat mengetahui logika bisnis dan properti ekstensi.

      Parameters for Extension

      Parameter ekstensi yang ingin Anda gunakan untuk meningkatkan efisiensi pengembangan dan aplikasi ekstensi.

      Anda dapat memasukkan parameter bawaan untuk skenario tipikal dan parameter kustom untuk referensi di masa depan.

      Anda dapat memasukkan beberapa parameter dalam format key=value. Pastikan setiap parameter menempati baris terpisah.

      Catatan

      Sebagai contoh, Anda dapat menggunakan parameter bawaan extension.project.disabled dari ekstensi untuk mencegah ekstensi berlaku untuk ruang kerja yang ditentukan. Untuk informasi lebih lanjut tentang cara menggunakan parameter ini, lihat Fitur lanjutan: Konfigurasikan parameter ekstensi.

      Options for Extension

      Item konfigurasi untuk ekstensi. Item konfigurasi disediakan untuk pengguna untuk mengimplementasikan manajemen proses kustom di ruang kerja yang berbeda berdasarkan kebutuhan bisnis mereka. Pengembang ekstensi harus mendefinisikan setiap item konfigurasi dalam string JSON di kotak dialog Daftarkan Ekstensi.

      Sebagai contoh, pengembang ekstensi dapat mengizinkan pengguna untuk mengelola panjang pernyataan SQL berdasarkan parameter ini. Untuk informasi lebih lanjut tentang format JSON, lihat Fitur lanjutan: Tentukan opsi untuk ekstensi.

  3. Klik OK.

    Catatan

    Setelah mendaftarkan ekstensi, Anda dapat melihat ekstensi di bagian List of Extensions halaman Ekstensi.

Langkah 2: Publikasikan ekstensi

Setelah mengembangkan, menerapkan, dan mendaftarkan ekstensi di DataWorks, Anda harus menguji ekstensi, mengirimkan ekstensi untuk ditinjau, dan kemudian menerbitkan ekstensi. Kemudian, administrator, selain pemilik ekstensi, dapat mengaktifkan ekstensi di Management Center. Untuk informasi lebih lanjut, lihat Gunakan Ekstensi.

Lampiran: Format pesan acara yang dikirim ke EventBridge

Kode sampel berikut memberikan contoh pesan acara lengkap. Parameter data menentukan isi pesan acara. EventBridge menyediakan informasi lain berdasarkan isi tersebut.

{
    "datacontenttype": "application/json;charset=utf-8", //Tipe konten dari bidang data. datacontenttype hanya mendukung tipe konten application/json.
    "aliyunaccountid": "1111",//ID akun Alibaba Cloud.
    "aliyunpublishtime": "2024-07-10T07:25:34.915Z",// Waktu ketika EventBridge menerima pesan acara.
    "data": {
              
             "tenantId": 28378****10656,// ID penyewa. Setiap akun Alibaba Cloud di DataWorks sesuai dengan satu penyewa. Setiap penyewa memiliki ID penyewa sendiri. Untuk melihat ID penyewa, klik nama pengguna di pojok kanan atas halaman DataStudio dan kemudian klik Informasi Pengguna di bagian Menu.
             "eventCode": "xxxx"//
            
    },
    "aliyunoriginalaccountid": "11111",
    "specversion": "1.0",
    "aliyuneventbusname": "default",// Nama bus acara yang digunakan untuk menerima pesan acara DataWorks.
    "id": "45ef4dewdwe1-7c35-447a-bd93-fab****",// ID acara. ID ini adalah pengenal unik suatu acara.
    "source": "acs.dataworks",// Sumber acara, yang menunjukkan layanan yang menghasilkan acara. Dalam contoh ini, pesan acara didorong oleh DataWorks.
    "time": "2024-07-10T15:25:34.897Z",// Waktu ketika acara dihasilkan.
    "aliyunregionid": "cn-shanghai",// Wilayah tempat acara diterima.
    "type": "dataworks:ResourcesUpload:UploadDataToTable"// Tipe acara. Anda dapat menggunakan tipe acara untuk memfilter pesan yang didorong oleh DataWorks di konsol EventBridge. Tipe setiap acara berbeda.
}
Catatan

Isi pesan acara bervariasi berdasarkan tipe acara. Untuk informasi lebih lanjut tentang pesan acara, lihat Referensi Pengembangan: Pesan Acara dan Format Pesan Acara.

Kode sampel yang digunakan untuk mengembangkan ekstensi kustom

Setelah memahami tindakan pencegahan untuk prosedur pengembangan ekstensi, Anda dapat mengembangkan kode ekstensi berdasarkan kebutuhan bisnis Anda. Topik berikut memberikan contoh pendaftaran, pengembangan, dan aplikasi ekstensi dalam skenario tipikal:

Referensi