擴展程序(Extensions)
DataWorks擴展程序是一種插件,結合OpenAPI及OpenEvent,您可以通過擴展程序對DataWorks中的用戶操作行為進行自定義邏輯處理并實現攔截阻斷等行為管控。例如,您可以開發一個任務變更管控擴展程序,實現自定義任務發布流程管控。本文為您介紹擴展程序的基本情況。
使用限制
僅支持DataWorks企業版。
支持地域:華北2(北京)、華東1(杭州)、華東2(上海)、華北3(張家口)、華南1(深圳)、西南1(成都)、美國(硅谷)、美國(弗吉尼亞)、德國(法蘭克福)、日本(東京)、中國(香港)、新加坡。
注意事項
權限控制:僅開放平臺管理員和租戶管理員、阿里云主賬號或者擁有AliyunDataWorksFullAccess權限的RAM用戶擁有開發者后臺的讀寫權限,權限控制詳情請參見全局級模塊權限控制、產品及控制臺權限控制詳情:RAM Policy。
版本期限:如果您使用的企業版DataWorks到期,所有擴展程序將會失效,無法再觸發事件檢查。已觸發且未達終態的檢查會自動通過。
使用限制:目前僅部分擴展點事件支持通過函數計算方式部署擴展程序。
產品能力
DataWorks開放平臺提供了豐富的擴展點,基于擴展點提供了擴展程序(Extensions)機制,擴展程序是一種插件,結合OpenAPI和開放消息OpenEvent,實現滿足您業務需求的個性化功能定制,以及對DataWorks側的操作攔截和阻斷等行為進行管控。
適用的管控場景:
管控表/任務命名規范。
管控重復數據同步任務。
管控任務計費。
管控任務依賴。
說明您可參考開發參考:事件列表與消息格式中的事件類型實現更多場景。
自定義管控流程說明:當使用擴展程序來對擴展點的操作進行管控時,DataWorks平臺使用者在平臺側針對擴展點的操作會被中斷,需在自定義的擴展程序返回結果后,才可繼續操作。
例如:在標準模式工作空間下,您可以在原任務開發發布基礎流程上,新增對某函數的檢測的擴展程序,實現任務發布流程從開發>提交>發布到開發>提交前校驗>提交>發布前檢查>發布的任務流程轉變??蓞⒁?a href="http://bestwisewords.com/zh/dataworks/user-guide/best-practices-for-prohibiting-the-use-of-the-max-pt-function" id="802abbc729hir" title="" class="xref">最佳實踐:(高級特性應用)禁止使用MAX_PT函數示例。
開發流程
在DataWorks中,您可以通過自建服務或函數計算服務方式開發部署擴展程序實現自定義流程管控。
配置開放事件推送事件消息:根據業務需要接收的擴展點事件類型,選擇合適的方式開發部署擴展程序。
使用自建服務開發部署擴展程序:依賴于EventBridge的消息分發能力,請確保已指定好DataWorks消息發送至EventBridge中的哪個事件總線,并在該事件總線中配置消息的路由服務。
使用函數計算開發部署擴展程序:DataWorks消息默認推送至指定的FC函數服務,無需在OpenEvent中配置事件總線。
開發部署擴展程序:在擴展程序中接收、解析DataWorks推送的事件消息,自定義邏輯判斷,并將結果返回至DataWorks。
開發部署擴展程序:自建服務方式:使用事件總線中消息最終路由的服務程序,來接受DataWorks消息,將消息進行邏輯判斷后,通過指定的API回調處理結果。
開發部署擴展程序:函數計算方式:需實現函數計算的特定接口,用于接收擴展程序請求,并返回擴展程序處理結果。
注冊擴展程序:在DataWorks側定義開發的擴展程序將用于接收和處理哪一類事件消息。
測試擴展程序:在測試空間驗證擴展程序是否符合預期。
提交上線擴展程序:確認無誤后提交平臺審核,審核通過后上線擴展程序給所有空間使用。
說明通常對擴展程序的審核會在
T+3
個工作日完成,請耐心等待。DataWorks開放事件消息有效期是3天 ,若超出3日則視為過期,擴展程序不予處理。
支持的擴展點事件列表
當前各模塊支持通過擴展程序處理的擴展點事件分類及事件詳情如下表。
開發部署擴展程序時,需使用不同擴展點對應的eventcode,各事件的事件編碼詳情請參見開發參考:事件列表與消息格式。
僅標準模式工作空間支持發布相關擴展點。
擴展點攔截效果可參見應用示例:數據開發過程觸發事件檢查、應用示例:運維中心觸發事件檢查。
應用范圍 | 系統模塊 | 擴展點類型 | 擴展點 | 回調校驗結果的OpenAPI |
空間級 | 節點變更 | 新增節點 | 您可通過UpdateIDEEventResult接口將事件處理結果回調至DataWorks。 | |
文件變更
| 刪除文件 | |||
提交文件 | ||||
發布文件 | ||||
運行代碼 | ||||
表變更 | 表提交開發環境 | |||
表發布生產環境 | ||||
節點運維 | 下線節點 | 您可通過UpdateWorkbenchEventResult接口將事件處理結果回調至DataWorks。 | ||
凍結節點 | ||||
解凍節點 | ||||
節點補數據 | 節點補數據 | |||
實例運維 | 凍結實例 | |||
解凍實例 | ||||
終止實例 | ||||
重跑實例(重跑、重跑下游) | ||||
置成功實例 | ||||
任務狀態變更 | 調度任務狀態變更 | |||
工作流狀態變更 | 補數據實例、手動業務流程工作流狀態變更 | |||
監控告警 | 監控告警 | |||
審批中心 | 創建申請單 | 您可通過CallbackExtension接口將事件處理結果回調至DataWorks。 | ||
安全中心 | 表權限申請 | |||
數據質量校驗 | 校驗結果反饋 | |||
校驗完成 | ||||
租戶級 | 空間管理 | 刪除空間前置 | ||
刪除空間后置 | ||||
數據下載 | 數據下載前置-文件生成 | |||
數據下載前置-文件下載 | ||||
數據上傳 | 數據上傳前置 |
附錄:兩類部署方式差異對比表
自建服務 | 函數計算 | |
操作難度 | 操作繁瑣,涉及服務器、應用部署、網絡以及運維問題。 | 操作簡單,僅需一個函數即可完成擴展程序的部署操作。 |
費用 | - | 會產生相應函數計算費用,詳情請參見計費概述。 |
支持事件 | 支持多種擴展事件,擴展事件詳情請參見:開發參考:事件列表與消息格式。 | 函數計算部署僅支持數據下載/上傳前置事件、資產上架/下架前置事件。 |