本文介绍如何在事件总线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的内容。 |