雲釘一體:EventBridge 聯合釘釘聯結器打通雲釘生態
簡介:今天,EventBridge 聯合釘釘聯結器,打通了釘釘生態和阿里雲生態,釘釘的生態夥伴可以通過通道的能力驅動阿里雲上海量的計算力。
作者:塵央
背景
“以事件整合阿里雲,從 EventBridge 開始”是 EventBridge 這款雲產品的願景和使命。作為一款無伺服器事件匯流排服務,EventBridge 從釋出以來,以標準化的 CloudEvents 1.0 協議連線了大量雲產品和雲事件,使用者可以通過 EventBridge 輕鬆訪問雲上事件,驅動雲上生態。
截止目前為止,EventBridge 已整合 85+ 阿里雲產品,提供了 941+ 事件型別,整合 50+ SaaS產品,通過事件規則可輕鬆驅動 10+ 阿里系一方雲產品的計算力。
另一方面,釘釘生態空前繁榮,擁有 4000+ 家的生態夥伴,包括 ISV 生態夥伴、硬體生態夥伴、服務商、諮詢生態和交付生態夥伴等。通過事件將釘釘生態與阿里雲生態聯通,是踐行「雲釘一體」戰略的重要途徑,EventBridge 作為阿里雲標準化的事件樞紐,其重要性不言而喻。
今天,EventBridge 聯合釘釘聯結器,打通了釘釘生態和阿里雲生態,釘釘的生態夥伴可以通過通道的能力驅動阿里雲上海量的計算力。
關鍵技術
EventBridge 整合阿里雲和釘釘生態的方案,核心能力由釘釘聯結器和 EventBridge 的 HTTP 事件源能力提供。
釘釘聯結器
釘釘連線平臺通過視覺化拖拽配置、一鍵訂閱等零程式碼方式,簡單高效的實現釘釘、企業內部系統、知名廠商系統(金蝶、用友、SAP 等)、釘釘第三方企業應用之間資料互通和整合。
近期,釘釘聯結器在「連線流」中釋出了「HTTP Webhook」的執行動作能力,支援將釘釘生態開放給外部生態,EventBridge 正是通過該能力將釘釘生態接入到阿里雲生態。
EventBridge HTTP 事件源
事件源是事件驅動的基石,如何獲取更多事件源也是 EventBridge 一直在探索和嘗試的方向。針對市場上其他雲廠商和垂直領域的 Saas 服務,EventBridge 釋出了 HTTP 事件源能力,提供簡單且易於整合的三方事件推送 ,幫助客戶更加高效、便捷地實現業務上雲。
具體而言,HTTP 事件源是 EventBridge 支援的事件源的一種,它以 Webhook 形式暴露了釋出事件的 HTTP 請求地址,使用者可以在有 URL 回撥的場景配置 HTTP 事件源,或者直接使用最簡單的 HTTP 客戶端來完成事件的釋出。HTTP 事件源提供了支援 HTTP 與 HTTPS,公網與阿里雲 VPC 等不同請求方式、不同網路環境的 Webhook URL,便於使用者將其整合到各類應用中。接入時無需使用客戶端,僅需保證應用可以訪問到對應 Webhook URL 即可,這使得接入過程變得簡單而高效。
在將 HTTP 請求轉換為 CloudEvent 的時候,EventBridge 會將請求的頭部和訊息體部分置於 CloudEvent 欄位中,其餘欄位會依據使用者 EventBridge 資源屬性以及系統預設規則進行填充。使用者可以在事件規則中,對所需的內容進行過濾、提取,最終按照模板拼裝成所需的訊息內容投遞給事件目標。
在安全方面,HTTP 事件源不需要使用者進行復雜的簽名鑑權,支援 3 種類型開箱即用的安全設定,分別是請求方法、源 IP 以及請求來源域名。
- 請求方法:使用者可以配置當前請求此事件源時合法的 HTTP 請求方法,如果方法型別不滿足配置規則,請求將被過濾,不會投遞到事件匯流排。
- 源 IP:使用者可以設定允許訪問此事件源時合法的源 IP(支援 IP 段和 IP),當請求源 IP 不在設定的範圍內時,請求將被過濾,不會投遞到事件匯流排。
- 請求來源域名:即 HTTP 請求的 referer 欄位,當請求的 referer 與使用者配置不相符時,請求被過濾,不會投遞到事件匯流排。
應用場景
釘釘聯結器市場有數百款聯結器,包含官方聯結器和第三方生態聯結器。
- 官方聯結器,來源主要是釘釘官方的應用,比如影片會議、日程、通訊錄、審批流、釘盤、宜搭等,企業和 SaaS 廠商可以充分利用這些官方應用的事件構建企業級的應用系統,也可以將釘釘的官方資料流與其他系統做深度整合。
- 第三方聯結器,來源主要是釘釘的生態合作伙伴,比如金蝶、行翼雲、集簡雲、用友、易快報、銷幫幫等。SaaS 廠商可以通過開放聯結器來開放資料,與其它應用互聯互通。
如上圖所示,藉助釘釘聯結器,可以將釘釘官方事件源和釘釘 SaaS 事件源連線到阿里雲 EventBridge,從而能驅動雲上的彈性資源。SaaS 廠商能夠藉助 EventBridge 連線的能力快速構建雲原生的 SaaS 應用,藉助雲的彈效能力,採用雲原生最新的技術棧,快速高效地開發 SaaS 應用,同時利用 EventBridge 獲取釘釘和其它 SaaS 應用的資料來源,輕鬆進行業務創新。
當釘釘生態和 EventBridge 聯通後,能產生哪些應用場景呢?
- 分析場景:企業藉助 EventBridge 事件分析能力,對釘釘官方事件進行分析,快速洞察企業運轉資料。比如審批效率,員工變更趨勢、會議效率等。
- 通知場景:釘釘聯結器 + EventBridge 可覆蓋絕大多數訊息通知場景,幫助企業使用者快速感知 審批,員工變動,會議室資訊等一些列企業基礎支援系統。
- 整合場景:基於阿里雲基礎建設,可快速提升釘釘生態和企業內部資料的互通。例如當公司需要對釘釘和企業內部 IT 系統進行資料打通時,EventBridge 解決方案可以毫不費力地將建立在阿里雲體系的 IT 系統連通起來,比如函式計算,雲資料庫,訊息佇列等連線擴充套件阿里雲生態。
- EDA 場景:使用 EventBridge 快速構建 EDA 驅動的自動化業務流程。例如在新員工入職時,獲取員工變動資訊。並集中推送到郵箱系統,業務支援系統(DB),CRM 系統等。對企業新員工許可權賬戶進行一站式授權,較少重複機械的業務審批流程。
最佳實踐:新增員工 0 程式碼入庫
本章節介紹使用釘釘聯結器和 EventBridge 的最佳實踐,通過一個例子展示如何 0 程式碼將釘釘的一個新員工入職記錄錄入到自定義的資料庫當中,企業可以根據該資料庫搭建各類員工管理系統。
方案簡介
整個方案涉及到釘釘、釘釘聯結器、EventBridge、阿里雲資料庫等產品,整個鏈路如下圖所示:
前置條件:
- 擁有一個釘釘賬號,並建立一個團隊成為管理員,並能登陸釘釘開放平臺。
- 擁有一個阿里雲賬號,並開通 EventBridge 和阿里雲資料庫。
實踐步驟
整個實踐過程分為以下幾個步驟。
1)建立事件匯流排和 HTTP 事件源
首先登陸 EventBridge 控制檯,建立一個事件匯流排和 HTTP 事件源,如下圖所示,可以先跳過規則和目標的建立。
建立完成後,進入事件匯流排的詳情列表,獲取 HTTP 事件源的公網「Webhook 地址」,如下圖所示:
2)建立釘釘連線流
登陸釘釘開放平臺,進入連線平臺,在「我的連線」下建立連線流,在建立介面,選擇觸發器為「官方-通訊錄-通訊錄使用者增加」。
連線流建立完成後,進入編輯頁面,新增一個「HTTP Webhook」的節點,在「請求地址」一欄填入上個步驟獲取到的「HTTP 事件源」地址。
3)釘釘觸發新增員工事件
開啟釘釘,進入團隊,邀請另一個賬號加入團隊,然後進入事件匯流排的「事件追蹤」頁面,可以發現該員工新增事件已經投遞到了事件匯流排之上。
該事件被轉換成了一個「CloudEvents」格式,其「$.data.body」為事件的詳情,包含 dingId, userId, department 等欄位。
{
"datacontenttype": "application/json",
"aliyunaccountid": "11*****48",
"data": {
"headers": {
},
"path": "/webhook/putEvents",
"body": {
"syncAction": "user_add_org",
"orderInDepts": "{1:17626***32512}",
"dingId": "$:***:$5RU***QhP/pK**+4A==",
"active": true,
"avatar": "",
"isAdmin": false,
"userId": "1411****46379",
"isHide": false,
"isLeaderInDepts": "{1:false}",
"isBoss": false,
"isSenior": false,
"name": "小明",
"department": [
1
]
},
"httpMethod": "POST",
"queryString": {}
},
"subject": "acs:eventbridge:cn-hangzhou:**:eventbus/**/eventsource/my.dingtalk",
"aliyunoriginalaccountid": "118**48",
"source": "my.dingtalk",
"type": "eventbridge:Events:HTTPEvent",
"aliyunpublishtime": "2022-05-13T07:28:29.505Z",
"specversion": "1.0",
"aliyuneventbusname": "chenyangbus",
"id": "7059131c-**-**-b232-c4c3592120ae",
"time": "2022-05-13T15:28:29.504+08:00",
"aliyunregionid": "cn-hangzhou",
"aliyunpublishaddr": "*.*.61.88"
}
4)資料庫建立員工表
通過 RDS 控制檯購買一個例項,並建立好資料庫,然後根據上述新增員工事件的格式,提取部分欄位對資料庫進行建表。
CREATE TABLE `user_info` (
`dingId` varchar(256) NULL,
`active` varchar(256) NULL,
`isAdmin` varchar(256) NULL,
`userId` varchar(256) NULL,
`name` varchar(256) NULL
) ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8;
5)建立事件規則
資料庫準備好後,返回 EventBridge 控制檯,為第一步建立的事件匯流排建立事件規則,對「新增員工事件」進行轉換並投遞至資料庫當中。
首先建立規則,過濾第一步建立的 HTTP 事件源。
然後選擇 RDS 目標,做好引數對映。
6)觸發事件入庫
第三步觸發事件時,因未配置規則和目標,事件沒有被消費,故需要通過釘釘重新觸發一次事件,然後從 EventBridge 控制檯觀察推送軌跡。
從軌跡中可以看出推送成功,然後通過 RDS 控制檯可以查詢到該條記錄。
至此,一個釘釘團隊新員工入職的記錄通過 0 程式碼的方式入庫到企業資料庫當中,可以非常低的成本開發企業級管理應用。
參考連結:
[2] 資料庫應用整合
[3] EDA 事件驅動架構與 EventBridge 二三事
本文為阿里雲原創內容,未經允許不得轉載。
- 基於任務排程的企業級分散式批處理方案
- 儲留香:資料遷移上雲避坑指南
- 為 Serverless Devs 插上 Terraform 的翅膀,實現企業級多環境部署(下)
- 模擬IDC spark讀寫MaxCompute實踐
- Maxcompute-UNION資料型別對齊的方法
- 基因檢測,如何幫助患者對抗疾病?
- 為 Serverless Devs 插上 Terraform 的翅膀,實現企業級多環境部署(上)
- 什麼是真正的敏捷開發?敏捷開發與瀑布開發有何不同
- 一文詳解|增長那些事兒
- Serverless 架構落地實踐及案例解析
- 基於信通院 Serverless 工具鏈模型的實踐:Serverless Devs
- 送外賣也要“黑科技”?阿里移動感知技術應用揭祕
- 影片需求超平常數 10 倍,卻節省了 60% 的 IT 成本投入是一種什麼樣的體驗?
- 成本節省 50%,10 人團隊使用函式計算開發 wolai 線上文件應用
- 科學地花錢:基於端智慧的線上紅包分配方案 (CIKM2020)
- 如何正確的做增量加工
- Apsara Stack 同行者專刊 | 政企混合雲技術架構的演進和發展
- 為什麼生命科學企業都在陸續上雲?
- 雲上彈性高效能運算,支援生命科學產業高速發展、降本增效
- 阿里雲易立:雲原生如何破解企業降本提效難題?