本文介绍如何在事件总线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的内容。 |
该文章对您有帮助吗?