本文介紹如何在事件匯流排EventBridge控制台添加HTTP/HTTPS 觸發類型的自訂事件來源。
背景資訊
自訂事件來源HTTP/HTTPS 觸發建立完成後,會產生一個Webhook地址,此Webhook地址是用於接收HTTP請求的URL。當配置了Webhook的服務端發生事件變更時,通過此URL發送訊息給事件匯流排EventBridge。事件匯流排EventBridge收到URL訊息後判斷是否將訊息轉換為事件推送到事件目標。
前提條件
操作步驟
- 登入事件匯流排EventBridge控制台。
- 在左側導覽列,單擊事件匯流排。
- 在頂部功能表列,選擇地區。
- 在事件匯流排頁面,單擊目標匯流排名稱。
- 在左側導覽列,單擊事件來源。
- 在事件源頁面,單擊添加事件源。
- 在添加自定义事件源面板,輸入名称和描述,事件提供方選擇HTTP/HTTPS 觸發,配置以下參數,然後單擊确认。
參數名稱 參數說明 請求類型 選擇HTTPS、HTTP或HTTP&HTTPS。 要求方法 選擇支援的HTTP要求方法。取值如下: - GET
- POST
- PUT
- DELETE
- HEAD
- PATCH
安全配置 選擇安全配置的類型。取值如下: - 無需配置:無需進行安全配置,接收到的所有URL請求均轉換為事件推送到事件匯流排EventBridge。
- IP網段:輸入正確的IP地址或者IP網段。只有使用該IP地址或該IP網段內的IP地址訪問的URL請求支援轉換為事件推送到事件匯流排EventBridge,其餘請求均會被過濾。
- 安全網域名稱:輸入安全的網域名稱資訊。只有使用該網域名稱訪問的URL請求支援轉換為事件推送到事件匯流排EventBridge,其餘請求均會被過濾。
IP網段 僅當參數安全配置選擇為IP網段時,需配置此參數。參數說明,請參見參數安全配置。 說明 最多支援添加5個IP地址或IP網段。安全網域名稱 僅當參數安全配置選擇為安全網域名稱時,需配置此參數。參數說明,請參見參數安全配置。 說明 最多支援添加5個安全網域名稱。
事件樣本
事件匯流排EventBridge將符合要求的HTTP請求轉化為事件,其中HTTP請求的要求標頭和訊息本文被置於事件data欄位的headers和body。
{
"datacontenttype": "application/json",
"aliyunaccountid": "175299981560****",
"data": {
"headers": {
"Host": "175299981560****.eventbridge.cn-hangzhou.aliyuncs.com",
"Accept-Encoding": "gzip, deflate, br",
"accept": "*/*",
"Content-Length": "538",
"Content-Type": "application/json"
},
"path": "/webhook/putEvents",
"body": {
"infoId": 1,
"ruleName": "Test",
"state": "alerting",
"message": "EventBridge test info.",
"ruleId": "796014154722826****"
},
"httpMethod": "GET",
"queryString": {}
},
"subject": "acs:eventbridge:cn-hangzhou:175299981560****:eventbus/EventBridgeDemoBus/eventsource/my.httpSource",
"aliyunoriginalaccountid": "175299981560****",
"source": "my.httpSource",
"type": "eventbridge:Events:HTTPEvent",
"aliyunpublishtime": "2022-03-03T03:33:14.097Z",
"specversion": "1.0",
"aliyuneventbusname": "EventBridgeDemoBus",
"id": "ac0d574c-d862-4662-a87b-784e3d77****",
"time": "2022-03-03T11:33:14.093+08:00",
"aliyunregionid": "cn-hangzhou",
"aliyunpublishaddr": "42.120.XX.XX"
}CloudEvents規範中定義的參數解釋,請參見事件概述。
data欄位包含的參數解釋如下表所示。
| 參數 | 類型 | 樣本值 | 描述 |
| headers | Map | | HTTP要求標頭。 |
| path | String | /webhook/putEvents | HTTP請求路徑。 |
| body | String/Map | | HTTP請求訊息本文。如果HTTP請求的Content-Type欄位取值為application/json,訊息本文將按照JSON進行解析,否則按照一般字元串解析。 |
| httpMethod | String | GET | HTTP要求方法。 |
| queryString | Map | 無 | HTTP請求的query參數去除token的內容。 |