本文介紹如何在事件總線EventBridge控制臺添加HTTP/HTTPS 觸發類型的自定義事件源。
背景信息
自定義事件源HTTP/HTTPS 觸發創建完成后,會生成一個Webhook地址,此Webhook地址是用于接收HTTP請求的URL。當配置了Webhook的服務端發生事件變更時,通過此URL發送消息給事件總線EventBridge。事件總線EventBridge收到URL消息后判斷是否將消息轉換為事件推送到事件目標。
前提條件
操作步驟
事件示例
事件總線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的內容。 |