本文介紹如何在事件總線EventBridge控制臺添加HTTP/HTTPS 觸發類型的自定義事件源。

背景信息

自定義事件源HTTP/HTTPS 觸發創建完成后,會生成一個Webhook地址,此Webhook地址是用于接收HTTP請求的URL。當配置了Webhook的服務端發生事件變更時,通過此URL發送消息給事件總線EventBridge事件總線EventBridge收到URL消息后判斷是否將消息轉換為事件推送到事件目標。

前提條件

操作步驟

  1. 登錄事件總線EventBridge控制臺
  2. 在左側導航欄,單擊事件總線
  3. 在頂部菜單欄,選擇地域。
  4. 事件總線頁面,單擊目標總線名稱。
  5. 在左側導航欄,單擊事件源
  6. 事件源頁面,單擊添加事件源
  7. 添加自定義事件源面板,輸入名稱描述事件提供方選擇HTTP/HTTPS 觸發,配置以下參數,然后單擊確認
    參數名稱 參數說明
    請求類型 選擇HTTPSHTTPHTTP&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字段的headersbody

{
  "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
{
    "Host":"175299981560****.eventbridge.cn-hangzhou.aliyuncs.com",
    "Accept-Encoding":"gzip, deflate, br",
    "accept":"*/*",
    "Content-Length":"538",
    "Content-Type":"application/json"
}
HTTP請求頭。
path String /webhook/putEvents HTTP請求路徑。
body String/Map
{
    "infoId":1,
    "ruleName":"Test",
    "state":"alerting",
    "message":"EventBridge test info.",
    "ruleId":"796014154722826****"
}
HTTP請求消息正文。如果HTTP請求的Content-Type字段取值為application/json,消息正文將按照JSON進行解析,否則按照普通字符串解析。
httpMethod String GET HTTP請求方法。
queryString Map HTTP請求的query參數去除token的內容。