全部產品
Search
文件中心

EventBridge:自訂事件來源API Gateway

更新時間:Nov 20, 2024

本文介紹如何在事件匯流排EventBridge控制台添加API Gateway類型的自訂事件來源。

前提條件

步驟一:建立後端服務

  1. 登入API Gateway控制台,在左側導覽列選擇API 管理 > 後端服務

  2. 後端服務列表頁面,單擊右上方的建立後端服務,在彈出的對話方塊中填寫後端服務名稱,類型選擇事件匯流排 EventBridge,然後單擊確定

    12Kka09sbi

  3. 在後端服務列表中找到您剛建立的後端服務,在右側的操作欄中單擊配置及關聯的API

  4. 後端服務定義頁面,單擊線上頁簽,然後在基本資料地區單擊建立

  5. 定義後端服務頁面,地區選擇建立好的自訂事件匯流排所在的地區,事件匯流排選擇建立好的自訂事件匯流排名稱,設定事件來源名稱和描述,單擊發布

步驟二:建立API分組

  1. 在左側導覽列,選擇API 管理 > 分組管理

  2. 分組列表頁面,單擊右上方的建立分組,選擇執行個體,設定分組名稱,然後單擊確定

    SYIFxEn5sG

    重要

    網關的分組需要和前提條件中建立好的自訂事件匯流排處於同一地區。

步驟三:建立API並對其授權

  1. 分組列表頁面找到步驟二中建立成功的API分組,單擊右側操作列的API管理

  2. API列表頁面,單擊建立API

    1. 基本資料設定精靈頁面,設定以下資訊,然後單擊下一步

      bmVHlylxnB

    2. 定義API請求設定精靈頁面,配置以下資訊,然後單擊下一步

      EVRUdrh91I

      說明

      本環節是定義事件匯流排如何請求您的API,需要確定的內容包括請求類型、協議、請求Path、HTTP Method、入參請求模式和入參定義。

    3. 定義API後端服務設定精靈頁面,選擇後端服務類型後端服務,然後單擊下一步

      aURupKIZw0

    4. (可選)定義返回結果設定精靈頁面,設定返回結果樣本和失敗返回結果樣本,用於產生API協助文檔,然後單擊建立

  3. API建立完成後,單擊其右側操作列的發布,將配置好的API發布至線上環境。

  4. API列表頁面,單擊目標API操作列的image表徵圖,然後單擊授權

  5. 授權面板,設定授權有效時間並添加需要授權的應用,然後單擊確定

    677dXHeo82

步驟五:調試API

  1. API列表頁面,找到步驟三:建立API並對其授權中建立的API,在其右側操作列,單擊調試

  2. 將調試環境選擇為線上驗證方式選擇為使用AppCode,佈建要求參數,單擊發送請求

    IpYBZq1PhH

查看事件詳情

  1. 登入事件匯流排EventBridge控制台,在左側導覽列,單擊事件匯流排
  2. 事件匯流排頁面,單擊目標自訂事件匯流排名稱。
  3. 在左側導覽列,單擊事件追蹤,設定查詢方式為按事件範圍查詢或者按事件ID查詢,單擊查詢

  4. 單擊目標事件ID操作列的事件詳情,即可查看事件的具體內容。

    查詢到的事件詳情如下所示:

    {
        "datacontenttype": "application/json",
        "aliyunaccountid": "1431999136******",
        "data": {
            "headers": {
                "Authorization": "APPCODE 0624849af6ab4020a272fe9f7b******",
                "Proxy-Uid": "X-Ca-e605e437-b65d-4e52-9f8c-515c55******",
                "X-Ca-Stage": "RELEASE",
                "User-Agent": "Apache-HttpClient/4.5.6 (Java/1.8.0_172)",
                "Accept-Encoding": "gzip,deflate",
                "Content-Type": "text/html"
            },
            "path": "/test/eb/1",
            "pathParameters": {},
            "method": "GET",
            "queryParameters": {}
            "body": ""
        },
        "aliyunoriginalaccountid": "143199913******",
        "source": "time-source-ad2a0405-9a2a-4f86-87f1-c0ef89******",
        "type": "eventbridge:Events:ApiGateway",
        "aliyunpublishtime": "2024-11-14T07:11:33.287Z",
        "specversion": "1.0",
        "aliyuneventbusname": "ad2a0405-9a2a-4f86-87f1-c0ef89******",
        "id": "324213ab-cae5-4049-89a4-560ead******",
        "time": "2024-11-14T07:11:33.000Z",
        "aliyunregionid": "cn-hangzhou",
        "aliyunpublishaddr": "172.20.XX.XX"
    }

    CloudEvents規範中定義的參數解釋,請參見事件概述

    data欄位包含的參數解釋如下表所示:

    參數

    類型

    樣本值

    描述

    headers

    Map

    {
        "Authorization": "APPCODE b6e439f27045443ca58e9136ef20****",
        "X-Ca-Dashboard-Uid": "115964845466****",
        "X-Ca-Dashboard-Action": "DEBUG",
        "X-Ca-Stage": "RELEASE",
        "X-Ca-Dashboard-Role": "USER",
        "User-Agent": "Apache-HttpClient/4.5.6 (Java/1.8.0_172)",
        "Accept-Encoding": "gzip,deflate",
        "Content-Type": "text/html; charset=utf-8"
    }

    HTTP要求標頭。

    path

    String

    /test/eb/1

    HTTP請求路徑。

    pathParameters

    Map

    路徑參數。

    body

    String/Map

    HTTP請求訊息本文。如果HTTP請求的Content-Type欄位取值為application/json,訊息本文將按照JSON進行解析,否則按照一般字元串解析。

    method

    String

    GET

    HTTP要求方法。

    queryParameters

    Map

    HTTP請求的query參數去除token的內容。