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:
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.
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,
databerisi konten pesan spesifik. Selama pengembangan, Anda dapat menggunakan bidangdata.eventCodeuntuk mengidentifikasi jenis pesan dan bidangiduntuk mengambil detail pesan.CatatanOpenEvent 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.
CatatanMessageIdberkorespondensi dengan bidangiddalam 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.
Setelah kode dikembangkan, Anda dapat memaketkan program menjadi file
.jaryang 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.
Buka tab Developer Backend.
Masuk ke Konsol DataWorks. Di bilah navigasi atas, pilih Wilayah yang diinginkan. Di panel navigasi kiri, pilih . Di halaman yang muncul, klik Go to Open Platform. Tab Developer Backend akan muncul.
Daftarkan ekstensi.
Di panel navigasi kiri, klik Extensions untuk membuka halaman Extensions.
Klik . Pilih Deploy with a self-hosted service dan konfigurasikan detail ekstensi.
Selesaikan pendaftaran ekstensi.
Klik OK untuk menyelesaikan.
CatatanSetelah 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.
}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
Untuk format pesan berbagai event, lihat Referensi pengembangan: Daftar event dan format pesan.
OpenEvent menyediakan subscription pesan untuk beberapa event melalui EventBridge. Untuk informasi selengkapnya, lihat Ikhtisar OpenEvent.
Untuk daftar titik ekstensi yang mendukung pemrosesan event menggunakan ekstensi, lihat Ikhtisar Extensions.
Anda juga dapat menerapkan ekstensi menggunakan Function Compute. Untuk informasi selengkapnya, lihat Kembangkan dan terapkan ekstensi menggunakan metode Function Compute.