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.
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.
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
datamenentukan isi pesan. Selama pengembangan aktual, Anda dapat menggunakan bidangdata.eventCodeuntuk mengonfirmasi tipe pesan dan bidangiduntuk mendapatkan detail pesan.CatatanModul 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.disableduntuk mencegah ekstensi berlaku untuk ruang kerja yang ditentukan. Untuk informasi lebih lanjut, lihat Fitur Lanjutan: Konfigurasikan Parameter Ekstensi.Konfigurasikan parameter
MessageIddalam operasi GetIDEEventDetail untuk acara titik perluasan di DataStudio untuk mendapatkan snapshot acara titik perluasan.
CatatanParameter
MessageIdsesuai 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".
Kemas ekstensi sebagai file
.jaryang 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:
Pergi ke tab Backend Pengembang.
Masuk ke konsol DataWorks. Di bilah navigasi atas, pilih wilayah yang diinginkan. Di panel navigasi sisi kiri, pilih . Pada halaman yang muncul, klik Go to Open Platform. Tab Developer Backend muncul.
Daftarkan ekstensi.
Di panel navigasi sisi kiri halaman yang muncul, klik Extensions.
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.
Klik OK.
CatatanSetelah 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.
}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
Untuk informasi tentang format pesan berbagai jenis acara, lihat Referensi Pengembangan: Pesan Acara dan Format Pesan Acara.
Modul OpenEvent memungkinkan Anda berlangganan acara titik perluasan menggunakan EventBridge. Untuk informasi lebih lanjut, lihat Ikhtisar.
Untuk informasi lebih lanjut tentang acara titik perluasan yang dapat diproses oleh ekstensi DataWorks, lihat Ikhtisar.
Anda juga dapat menerapkan ekstensi berbasis Function Compute. Untuk informasi lebih lanjut, lihat Mengembangkan dan Menerapkan Ekstensi Berbasis Function Compute.