全部產品
Search
文件中心

DataWorks:開發部署擴充程式:自建服務方式

更新時間:Jun 19, 2024

在DataWorks擴充程式中,您可以自訂邏輯以監管使用者的操作行為,例如攔截和阻斷不當行為,通過擴充程式對特定事件進行訊息通知與流程管控。本文為您介紹如何通過自建服務開發部署擴充程式。

許可權說明

  • 開放平台管理員租用戶系統管理員擁有開發人員後台的讀寫權限,其他租戶級角色、空間級角色僅擁有開發人員背景唯讀許可權。詳情請參見全域級模組許可權控制

  • 僅支援阿里雲主帳號或者擁有AliyunDataWorksFullAccess許可權的RAM使用者進行介面相關配置,許可權詳情請參見產品及控制台許可權控制詳情:RAM Policy

使用限制

  • 僅DataWorks企業版及以上版本支援擴充程式功能。

    說明

    如果使用的企業版DataWorks版本到期後,所有擴充程式均會失效,無法再觸發事件檢查。已觸發且未到終態的檢查會自動通過。

  • 多個擴充程式可關聯同一個擴充點事件,即同一個事件支援觸發多個擴充程式。

  • 擴充點事件分為租戶級和空間級,註冊擴充程式時,僅支援選擇某一類層級的擴充點事件。DataWorks支援的擴充點事件所屬層級,請參見支援的擴充點事件列表

  • 包含內部節點的組合類別節點(例如機器學習(PAI)節點do-while節點for-each節點)觸發檢查時,需內部節點均檢查通過才可繼續進行後續操作。

處理流程

通過自建服務開發和部署擴充程式,並通過OpenEvent和OpenAPI進行擴充程式與DataWorks的通訊,實現自訂流程式控制制的操作如下:

  1. 通過OpenEvent實現擴充訊息訂閱。

    OpenEvent通過EventBridge提供部分事件的訊息訂閱,訂閱後,您可擷取對應事件的訊息詳情(例如,提交節點為檔案提交類事件),包含節點ID、操作人UID、專案空間ID等資訊。詳情請參見步驟一:開啟訊息訂閱

  2. 通過擴充程式實現擴充點事件處理。

    將自己的服務程式註冊為擴充程式,接收到訂閱的事件訊息後通過擴充程式處理事件,詳情請參見步驟二:註冊擴充程式

  3. 通過OpenAPI實現擴充點事件處理結果回調。

    通過OpenAPI返回處理結果給DataWorks,詳情請參見步驟三:開發擴充程式

    擴充點事件觸發等待擴充程式處理過程中,當前流程會變為“檢查中”狀態,OpenAPI會將擴充程式的處理結果返回給DataWorks,DataWorks根據反饋結果狀態繼續流程。處理結果狀態如下:

    • OK:擴充程式對本次擴充點事件檢查通過。

    • FAIL:擴充程式對本次擴充點事件檢查不通過。您需要查看並及時處理報錯,以免影響後續程式的正常執行。

    • WARN:擴充程式對本次擴充點事件檢查通過,但存在警告。

  4. 將擴充程式部署至本地應用。詳情請參見步驟四:部署擴充程式

步驟一:開啟訊息訂閱

擴充程式通常需聯合OpenEvent一起使用,您需先通過OpenEvent訂閱擴充點事件,再使用擴充程式處理事件。因此,開發並使用擴充程式前,需先開啟訊息訂閱,擷取訊息訂閱的EventBridge資訊、訂閱事件的訊息體格式,用於後續擴充程式的代碼開發。

步驟二:註冊擴充程式

開發使用擴充程式前,您需先在DataWorks註冊一個擴充程式,擷取對應的Extension Code,用於後續的擴充程式碼開發,操作步驟如下。

  1. 進入開放平台

  2. 在左側導覽列單擊擴充程式,進入擴充程式頁面。

  3. 註冊擴充程式。

    單擊擴充程式列表 > 註冊擴充程式,選擇通過自建服務部署並配置擴充程式資訊。

    註冊擴充程式

    您可根據需要配置所需參數,參數說明如下。

    參數

    如何配置

    擴充程式名稱

    自訂擴充程式的名稱,用於標識擴充程式。

    處理的擴充點

    選擇該擴充程式用於處理哪幾類擴充事件觸發的訊息。當前支援的擴充點,詳情請參見支援的擴充點事件列表,您可根據實際情況選擇。

    說明
    • 選擇完成後,配置介面會自動根據選擇結果匹配所屬事件適用模組,無需手動設定。

    • 擴充點事件分為租戶級和空間級,註冊擴充程式時,僅支援選擇某一類層級的擴充點事件。DataWorks支援的擴充點事件所屬層級,請參見支援的擴充點事件列表

    • 通過Function Compute部署的擴充程式目前僅支援資料下載前置事件

    負責人

    擴充程式的負責人,方便擴充程式使用者遇到問題時能及時聯絡到負責人。

    測試用工作空間

    選擇測試擴充程式的工作空間。擴充程式無需進行上線操作,即可在測試工作空間中生效。

    擴充程式上線前,開發人員可在測試空間進行完整鏈路的測實驗證,通過觸發事件,測試DataWorks通過EventBridge發送訊息、擴充程式接收訊息並進行訊息審核與回調。

    說明

    處理的擴充點選擇租戶級擴充點事件,無需配置測試用工作空間

    擴充程式詳情地址

    輸入介紹擴充程式詳情的地址,協助擴充程式使用者更好的理解和使用此擴充程式。

    您可在開發部署擴充程式時,開發一個擴充程式的詳情展示頁面,將頁面地址配置在此處,以便使用者在觸發擴充程式校正時,可通過連結查看完整的校正過程。例如,此次擴充程式檢查鏈路和阻塞的原因。

    擴充程式文檔地址

    輸入擴充程式的協助文檔地址,供擴充程式的使用者閱讀。

    您可在開發部署擴充程式時,開發一個擴充程式的協助文檔頁面,將頁面地址配置在此處,以便使用者學習瞭解擴充程式的校正邏輯與屬性。

    擴充程式參數配置

    DataWorks支援在擴充程式開發過程中使用參數來提高擴充程式開發和應用效率,在擴充程式碼開發時,將需要應用的參數添加至此處即可。

    您可直接使用DataWorks提供的典型應用情境的內建參數,也可自訂參數。

    支援添加多個參數,一行一個參數,參數格式為key=value。更多參數的使用,請參見進階應用程式:擴充程式參數配置

    擴充程式選項配置

    輸入提供給擴充程式使用者使用的功能配置項,可實現該擴充程式在不同工作空間進行個人化管控。擴充程式開發人員需在此介面通過JSON字串定義選項。

    例如,可通過選項配置讓擴充程式使用者自行管控SQL長度。JSON格式可參考進階應用程式:擴充程式選項配置

  4. 單擊確定,完成擴充程式註冊。

    註冊完成後,在擴充程式列表,您可執行以下操作:

    • 查看擴充程式:查看擴充程式的擴充點、適用模組、Extension Code、狀態等資訊。

    • 操作擴充程式:對擴充程式執行提交上線編輯等操作。

步驟三:開發擴充程式

進行擴充程式相關代碼開發有以下幾個注意事項。

  1. 訂閱並解析擴充點事件訊息。

    • OpenEvent基於EventBridge實現DataWorks事件訊息的分發,您可以在EventBridge訂閱事件訊息,訂閱的操作詳情請參見什麼是事件匯流排EventBridge

    • 解析擴充點事件訊息時,發送給EventBridge的訊息格式,詳情請參見附錄:訊息格式

  2. 擷取擴充點事件詳情並處理。

    • 您可通過調用API,指定API中的messageId參數來擷取詳細的事件詳情。

      說明
    • 在擴充程式碼開發過程中,您可以使用參數來提高開發和應用效率,例如,您可以使用內建擴充程式參數extension.project.disabled,使擴充程式對某個工作空間不生效。更多擴充程式參數的使用配置請參見進階應用程式:擴充程式參數配置

  3. 返回處理結果至DataWorks。

    您可通過API將擴充程式對擴充點事件的處理結果返回給DataWorks。

    說明

    DataStudio中的擴充點事件可使用UpdateIDEEventResult這個API,營運中心的擴充點事件可使用UpdateWorkbenchEventResult這個API。

步驟四:部署擴充程式

擴充程式碼開發調試完成後,您可在本地或阿里雲ECS上將其部署為一個應用服務,用於後續使用。

擴充程式樣本

瞭解上述擴充程式開發注意事項後,您可根據業務需求開發自己的擴充程式碼,以下也提供了一些典型情境下,擴充程式註冊、開發、應用的樣本。

相關文檔