EventBridge事件調度包括云產品事件調度和自定義事件源事件調度。云產品事件調度支持包括彈性計算、存儲服務、數據庫、容器、大數據處理、可觀測性服務及中間件服務在內的幾乎所有阿里云官方事件源,而自定義事件源事件調度支持包括SLS、Kafka、RocketMQ、RabbitMQ等事件源的接入。本文介紹如何創建EventBridge事件調度以及工作流調度的高級功能。
創建EventBridge事件調度
云產品事件調度
云產品事件調度能夠實現通過阿里云產品事件調度工作流執行,這些事件主要包括云監控事件、審計事件、云服務器事件、阿里云物聯網IoT事件和部分云產品運維事件等云產品事件。本文以云服務器為例,介紹如何在控制臺創建阿里云產品事件調度。
功能簡介
您在工作流控制臺提交創建工作流的請求后,根據工作流調度的配置信息,將自動在阿里云官方事件總線default下創建一個事件規則rule-created-by-fnf-隨機串。創建完成后,您可以在工作流查看工作流調度信息,也可以在事件總線EventBridge控制臺查看自動創建的事件規則信息。當事件源指定類型的事件投遞到事件總線時,將調度該工作流調度關聯的工作流執行一次。
注意事項
事件總線EventBridge的云服務專用事件總線default上最多只能創建10個事件規則,超過10個之后將無法再創建云產品事件調度。
前提條件
事件總線
云工作流
創建云產品事件調度
登錄云工作流控制臺,然后在頂部菜單欄,選擇地域。
在左側導航欄,選擇工作流列表,然后在工作流列表頁面,單擊目標工作流。
在工作流詳情頁面,單擊工作流調度頁簽,然后單擊創建工作流調度。
在創建工作流調度面板,調度類型選擇云服務器ECS,設置相關配置項,然后單擊確定。基礎配置項說明如下所示。
配置項
操作
本文示例
名稱
填寫自定義的工作流調度名稱。
ecs-schedule
事件類型
選擇自定義事件類型或選中全部事件類型。如果選擇自定義事件類型,您可以選擇云服務器的一個或多個事件類型。
自定義事件類型,ecs:Disk:ConvertToPostpaidCompleted 保留云盤
事件模式內容
不支持手動編輯,您在事件類型參數中選擇事件類型后,事件模式內容自動填充。關于事件模式的信息,請參見事件模式
{ "source": [ "acs.ecs" ], "type": [ "ecs:Disk:ConvertToPostpaidCompleted" ] }
關于推送配置、重試和死信等高級配置項說明,請參見工作流調度高級功能。創建完成后,您可以在工作流詳情頁面的工作流調度頁簽,根據界面提示查看、編輯、刪除或禁用/啟用工作流。
HTTP調度
HTTP請求作為事件源通過事件總線與云工作流集成后,通過HTTP調度能夠觸發關聯工作流執行。本文介紹如何在控制臺創建HTTP調度。
注意事項
創建的自定義總線以及事件規則數量超過上限后,將無法再創建事件模式的HTTP調度。在單個阿里云賬號單個地域維度下,關于創建工作流調度涉及的資源數量的限制,請參見使用限制。
前提條件
事件總線
云工作流
創建HTTP調度
登錄云工作流控制臺,然后在頂部菜單欄,選擇地域。
在左側導航欄,選擇工作流列表,然后在工作流列表頁面,單擊目標工作流。
在工作流詳情頁面,單擊工作流調度頁簽,然后單擊創建工作流調度。
在創建工作流調度面板,調度類型選擇HTTP/HTTPS 觸發,設置相關配置項,然后單擊確定。基礎配置項說明如下所示。
配置項
操作
本文示例
名稱
填寫自定義的工作流調度名稱。
https-schedule
請求類型
選擇HTTPS、HTTP或HTTP&HTTPS。
HTTP
請求方法
選擇支持的HTTP請求方法。取值說明如下。
GET
POST
PUT
DELETE
HEAD
PATCH
GET
安全配置
選擇安全配置的類型。取值說明如下。
無需配置:無需進行安全配置,接收到的所有URL請求均可觸發工作流執行。
IP網段:輸入正確的IP地址或者IP網段。只有使用該IP地址或該IP網段內的IP地址訪問的URL請求支持觸發工作流執行。最多支持添加5個IP地址或者IP網段。
安全域名:輸入安全的域名信息。只有使用該域名訪問的URL請求支持觸發工作流執行。最多支持添加5個安全域名。
IP網段:10.45.12.0/24
關于推送配置、重試和死信等高級配置項說明,請參見工作流調度高級功能。創建完成后,您可以在工作流詳情頁面的工作流調度頁簽,根據界面提示查看、編輯、刪除或禁用/啟用工作流。
MNS調度
注意事項
作為事件源的輕量消息隊列(原 MNS)必須和創建工作流調度的工作流所在的地域相同。
創建的事件流數量超過上限后,將無法再創建事件模式的MNS調度。在單個阿里云賬號單個地域維度下,關于創建工作流調度涉及的資源數量的限制,請參見使用限制。
前提條件
事件總線
云工作流
輕量消息隊列(原 MNS)
創建工作流調度
登錄云工作流控制臺,然后在頂部菜單欄,選擇地域。
在左側導航欄,選擇工作流列表,然后在工作流列表頁面,單擊目標工作流。
在工作流詳情頁面,單擊工作流調度頁簽,然后單擊創建工作流調度。
在創建工作流調度面板,調度類型選擇輕量消息隊列(原 MNS),設置相關配置項,然后單擊確定。基礎配置項說明如下所示。
配置項
操作
本文示例
名稱
填寫自定義的工作流調度名稱。
mns-schedule
隊列名稱
選擇已創建的輕量消息隊列(原 MNS)。
MyQueue
Base64 解碼
如果需要將MNS的數據解碼后進行投遞,請勾選開啟 Base64 解碼復選框。
開啟 Base64 解碼
關于推送配置、重試和死信等高級配置項說明,請參見工作流調度高級功能。創建完成后,您可以在工作流詳情頁面的工作流調度頁簽,根據界面提示查看、編輯、刪除或禁用/啟用工作流。
Kafka調度
注意事項
作為事件源的消息隊列Kafka版實例必須和創建工作流調度的工作流在相同的地域。
創建的事件流數量超過上限后,將無法再創建Kafka調度。單個阿里云賬號單個地域維度下,關于創建工作流調度涉及的資源數量的限制,請參見使用限制。
前提條件
事件總線
云工作流
云消息隊列 Kafka 版
創建Kafka工作流調度
登錄云工作流控制臺,然后在頂部菜單欄,選擇地域。
在左側導航欄,選擇工作流列表,然后在工作流列表頁面,單擊目標工作流。
在工作流詳情頁面,單擊工作流調度頁簽,然后單擊創建工作流調度。
在創建工作流調度面板,調度類型選擇消息隊列 Kafka 版,設置相關配置項,然后單擊確定。基礎配置項說明如下所示。
配置項
操作
本文示例
名稱
填寫自定義的工作流調度名稱。
kafka-schedule
Kafka 實例
選擇已創建的消息隊列Kafka版實例。
alikafka_pre-cn-i7m2t7t1****
Topic
選擇已創建的消息隊列Kafka版實例的Topic。
topic1
Group ID
選擇已創建的消息隊列Kafka版實例的Group ID。
重要請使用獨立的Group ID來創建工作流調度,不要與已有的業務混用Group ID,否則會影響已有的消息收發。
GID_group1
消費任務并發數
消費者的并發數量,取值范圍為[1,Topic的分區數]。
2
消費位點
選擇消息的消費位點,即消息隊列Kafka版從事件總線開始拉取消息的位置。取值說明如下。
最早位點:從最早位點開始消費。
最新位點:從最新位點開始消費。
最新位點
網絡配置
選擇路由消息的網絡類型。取值說明如下。
默認網絡:默認使用部署Kafka實例時選擇的VPC ID和vSwitch ID。
自建公網:需選擇另外的專有網絡VPC、交換機和安全組。
默認網絡
關于推送配置、重試和死信等高級配置項說明,請參見工作流調度高級功能。創建完成后,您可以在工作流詳情頁面的工作流調度頁簽,根據界面提示查看、編輯、刪除或禁用/啟用工作流。
RocketMQ調度
注意事項
作為事件源的消息隊列RocketMQ版的實例必須和創建調度的工作流在相同的地域。
創建的事件流數量超過上限后,將無法再創建事件模式的RocketMQ調度。單個阿里云賬號單個地域維度下,關于創建工作流調度涉及的資源數量的限制,請參見使用限制。
前提條件
事件總線
云工作流
云消息隊列 RocketMQ 版
創建RocketMQ調度
登錄云工作流控制臺,然后在頂部菜單欄,選擇地域。
在左側導航欄,選擇工作流列表,然后在工作流列表頁面,單擊目標工作流。
在工作流詳情頁面,單擊工作流調度頁簽,然后單擊創建工作流調度。
在創建工作流調度面板,調度類型選擇消息隊列 RocketMQ 版,設置相關配置項,然后單擊確定。基礎配置項說明如下所示。
配置項
操作
本文示例
名稱
填寫自定義的工作流調度名稱。
rocketmq-schedule
RocketMQ 實例
選擇已創建的消息隊列RocketMQ版的實例。
MQ_INST_164901546557****_BX7****
Topic
選擇已創建的消息隊列RocketMQ版實例的Topic。
topic1
Tag
填寫消息過濾標簽。只有收到包含此處設置的過濾標簽字符串的消息時,才會觸發工作流執行。
tag
Group ID
選擇已創建的消息隊列RocketMQ版實例的Group ID。推薦您選擇快速創建,自動創建以
GID_FNF_TRIGGER_{uuid}_{timestamp}
命名的Group ID。重要請使用獨立的Group ID來創建工作流調度,不要與已有的業務混用Group ID,否則會影響已有的消息收發。
GID_group1
消費位點
選擇消息的消費位點,即消息隊列RocketMQ版從事件總線開始拉取消息的位置。取值說明如下。
最新位點:從最新位點開始消費。
最早位點:從最早位點開始消費。
指定時間戳:從指定時間戳開始消費。
最新位點
關于推送配置、重試和死信等高級配置項說明,請參見工作流調度高級功能。創建完成后,您可以在工作流詳情頁面的工作流調度頁簽,根據界面提示查看、編輯、刪除或禁用/啟用工作流。
RabbitMQ調度
注意事項
作為觸發源的消息隊列RabbitMQ版實例必須和創建調度的工作流在相同的地域。
創建的事件流數量超過上限后,將無法再創建事件模式的RabbitMQ調度。單個阿里云賬號單個地域維度下,關于創建工作流調度涉及的資源數量的限制,請參見使用限制。
前提條件
事件總線
云工作流
云消息隊列 RabbitMQ 版
創建RabbitMQ調度
登錄云工作流控制臺,然后在頂部菜單欄,選擇地域。
在左側導航欄,選擇工作流列表,然后在工作流列表頁面,單擊目標工作流。
在工作流詳情頁面,單擊工作流調度頁簽,然后單擊創建工作流調度。
在創建工作流調度面板,調度類型選擇消息隊列 RabbitMQ 版,設置相關配置項,然后單擊確定。基礎配置項說明如下所示。
配置項
操作
本文示例
名稱
填寫自定義的工作流調度名稱。
rabbitmq-schedule
RabbitMQ 實例
選擇已創建的消息隊列RabbitMQ版的實例。
amqp-cn-i7m2l6m2****
Vhost
選擇已創建的消息隊列RabbitMQ版實例的Vhost。
myhost-1
Queue
選擇已創建的消息隊列RabbitMQ版實例的Queue。
myqueue-1
關于推送配置、重試和死信等高級配置項說明,請參見工作流調度高級功能。創建完成后,您可以在工作流詳情頁面的工作流調度頁簽,根據界面提示查看、編輯、刪除或禁用/啟用工作流。
SLS調度
通過創建日志服務SLS調度(以下簡稱SLS調度)將日志服務SLS與云工作流連接起來,當有新日志產生時觸發工作流執行,對日志進行處理。本文介紹如何在控制臺創建SLS調度。
注意事項
作為觸發源的日志服務SLS項目必須和創建調度的工作流在相同的地域。
創建的事件流數量超過上限后,將無法再創建事件模式的SLS調度。在單個阿里云賬號單個地域維度下,關于創建工作流調度涉及的資源數量的限制,請參見使用限制。
前提條件
事件總線
云工作流
日志服務
創建SLS調度
登錄云工作流控制臺,然后在頂部菜單欄,選擇地域。
在左側導航欄,選擇工作流列表,然后在工作流列表頁面,單擊目標工作流。
在工作流詳情頁面,單擊工作流調度頁簽,然后單擊創建工作流調度。
在創建工作流調度面板,調度類型選擇日志服務 SLS,設置相關配置項,然后單擊確定。基礎配置項說明如下所示。
配置項
操作
本文示例
名稱
填寫自定義的工作流調度名稱。
sls-schedule
日志項目
選擇創建的日志服務SLS的Project。
test-Project
日志庫
選擇創建的日志服務SLS的Logstore
test-LogStore
起始消費位點
起始消費位點,可以選擇最早或最新位點,也可以從指定時間開始消費。
最新位點
角色配置
授權事件總線EventBridge使用此角色讀取SLS日志內容。
testRole
關于推送配置、重試和死信等高級配置項說明,請參見工作流調度高級功能。創建完成后,您可以在工作流詳情頁面的工作流調度頁簽,根據界面提示查看、編輯、刪除或禁用/啟用工作流。
MQTT調度
云消息隊列 MQTT 版作為事件源通過事件總線與云工作流調度集成后,通過云消息隊列 MQTT 版調度能夠觸發關聯工作流執行,通過云工作流可以對發布到云消息隊列 MQTT 版的消息進行自定義處理。本文介紹如何在控制臺創建MQTT調度。
注意事項
作為觸發源的云消息隊列MQTT版實例必須和創建調度的工作流在相同的地域。
創建的事件流數量超過上限后,將無法再創建事件模式的MQTT調度。在單個阿里云賬號單個地域維度下,關于創建工作流調度涉及的資源數量的限制,請參見使用限制。
前提條件
事件總線
云工作流
云消息隊列 MQTT 版
創建MQTT調度
登錄云工作流控制臺,然后在頂部菜單欄,選擇地域。
在左側導航欄,選擇工作流列表,然后在工作流列表頁面,單擊目標工作流。
在工作流詳情頁面,單擊工作流調度頁簽,然后單擊創建工作流調度。
在創建工作流調度面板,調度類型選擇消息隊列 MQTT版,設置相關配置項,然后單擊確定。基礎配置項說明如下所示。
配置項
操作
本文示例
名稱
填寫自定義的工作流調度名稱。
mqtt-schedule
MQTT 實例
選擇已創建的MQTT實例。
mqtt-xxx
MQTT Topic
選擇已創建的MQTT實例的Topic。
testTopic
關于推送配置、重試和死信等高級配置項說明,請參見工作流調度高級功能。創建完成后,您可以在工作流詳情頁面的工作流調度頁簽,根據界面提示查看、編輯、刪除或禁用/啟用工作流。
DTS調度
數據傳輸服務 DTS(Data Transmission Service)作為事件源通過事件總線與云工作流集成后,通過DTS調度能夠觸發關聯工作流的執行。本文介紹如何在流控制臺創建DTS調度。
注意事項
作為觸發源的DTS數據訂閱任務必須和創建調度的工作流在相同的地域。
創建的事件流數量超過上限后,將無法再創建事件模式的DTS調度。在單個阿里云賬號單個地域維度下,關于創建工作流調度涉及的資源數量的限制,請參見使用限制。
前提條件
事件總線
云工作流
數據傳輸服務
創建DTS調度
登錄云工作流控制臺,然后在頂部菜單欄,選擇地域。
在左側導航欄,選擇工作流列表,然后在工作流列表頁面,單擊目標工作流。
在工作流詳情頁面,單擊工作流調度頁簽,然后單擊創建工作流調度。
在創建工作流調度面板,調度類型選擇數據傳輸服務 DTS,設置相關配置項,然后單擊確定。基礎配置項說明如下所示。
配置項
操作
本文示例
名稱
填寫自定義的工作流調度名稱。
dts-schedule
數據訂閱任務
已創建的數據訂閱任務名稱。
dtsqntc2***
消費組
已創建的用于消費訂閱任務的消費組名稱。
test
賬號
創建消費組時設置的賬號。
test
密碼
創建消費組時設置的密碼。
*******
消費位點
期望消費第一條數據的時間戳,消費位點必須在訂閱實例的數據范圍之內。
2022-06-21 00:00:00
關于推送配置、重試和死信等高級配置項說明,請參見工作流調度高級功能。創建完成后,您可以在工作流詳情頁面的工作流調度頁簽,根據界面提示查看、編輯、刪除或禁用/啟用工作流。
工作流調度高級功能
推送格式
用于指定Event參數中每個數據元素的格式。
CloudEvents:以通用格式描述事件數據的規范,旨在簡化不同服務和平臺間的事件聲明和傳輸。
RawData:只投遞CloudEvents中數據字段的內容,不包含CloudEvents格式中的其它元數據信息。
批量推送
開啟批量推送后,需設置批量推送條數和推量推送間隔。
批量推送條數:一次調用函數發送的最大批量消息條數,當積壓的消息數量到達設定值時才會發送請求。取值范圍為[1,10000]。
批量推送間隔:調用函數的時間間隔,系統每到間隔時間點會將消息聚合后發給云工作流。取值范圍為[0,15],單位為秒。0秒表示無需等待,實時投遞。
批量推送案例:
案例一:
您設置的批量推送條數為10條,每條消息大小為1 KB,推量推送間隔為15s。在10s內消息條數累積10條,則立即觸發推送,無需等到15s再推送。
案例二:
您設置的批量推送條數為32條,每條消息大小為1 KB,推量推送間隔為15s。在15s內消息積累10條,則立即觸發推送,無需等待消息積累到32條后再推送。
案例三:
您設置的批量推送條數為20條,每條消息大小為2 KB,推量推送間隔為15s。在10s內消息積累40條(消息累積大小40*2 KB=80 KB),達到工作流Input大小限制數,則立即觸發推送,第一批聚合32條消息推送到云工作流,第二批聚合8條消息推送到云工作流。
重試策略
事件推送失敗時,可按配置的重試策略進行重試。重試策略選項如下。
退避重試:重試3次,每次重試的時間間隔為介于10s~20s的隨機值。
指數衰減重試:默認重試策略。重試176次,每次重試的時間間隔按照指數遞增至512s,總計重試時間為24小時,即重試時間間隔為1s、2s、4s、8s、16s、32s、64s、128s、256s、512s……512s(共計167次間隔512s)。
容錯策略
當發生錯誤時是否選擇容錯。
允許容錯
請求失敗且重試失敗后,跳過此請求,繼續處理下一條請求。
禁止容錯
請求失敗且重試失敗后,消費任務阻塞。
死信隊列
僅當開啟允許容錯時,可配置死信隊列。
如果啟用死信隊列,未被處理或超過重試次數的消息會被投遞到目標服務中。云工作流支持的目標服務包括輕量消息隊列(原 MNS)、消息隊列RocketMQ版、消息隊列Kafka版和事件總線EventBridge,您可以根據需求選擇不同的隊列類型。
如果未啟用死信隊列,超過重試次數的消息會被丟棄。