自定義事件源API網(wǎng)關(guān)
本文介紹如何在事件總線EventBridge控制臺(tái)添加API 網(wǎng)關(guān)類型的自定義事件源。
前提條件
步驟一:創(chuàng)建后端服務(wù)
登錄API網(wǎng)關(guān)控制臺(tái),在左側(cè)導(dǎo)航欄選擇 。
在后端服務(wù)列表頁面,單擊右上角的創(chuàng)建后端服務(wù),在彈出的對(duì)話框中填寫后端服務(wù)名稱,類型選擇事件總線 EventBridge,然后單擊確定。
在后端服務(wù)列表中找到您剛創(chuàng)建的后端服務(wù),在右側(cè)的操作欄中單擊配置及關(guān)聯(lián)的API。
在后端服務(wù)定義頁面,單擊線上頁簽,然后在基本信息區(qū)域單擊創(chuàng)建。
在定義后端服務(wù)頁面,區(qū)域選擇創(chuàng)建好的自定義事件總線所在的地域,事件總線選擇創(chuàng)建好的自定義事件總線名稱,設(shè)置事件源名稱和描述,單擊發(fā)布。
步驟二:創(chuàng)建API分組
在左側(cè)導(dǎo)航欄,選擇
。在分組列表頁面,單擊右上角的創(chuàng)建分組,選擇實(shí)例,設(shè)置分組名稱,然后單擊確定。
重要網(wǎng)關(guān)的分組需要和前提條件中創(chuàng)建好的自定義事件總線處于同一地域。
步驟三:創(chuàng)建API并對(duì)其授權(quán)
在分組列表頁面找到步驟二中創(chuàng)建成功的API分組,單擊右側(cè)操作列的API管理。
在API列表頁面,單擊創(chuàng)建API。
在基本信息配置向?qū)ы撁?,設(shè)置以下信息,然后單擊下一步。
在定義API請(qǐng)求配置向?qū)ы撁?,配置以下信息,然后單?b data-tag="uicontrol" id="uicontrol-jwm-f60-ict" class="uicontrol">下一步。
說明本環(huán)節(jié)是定義事件總線如何請(qǐng)求您的API,需要確定的內(nèi)容包括請(qǐng)求類型、協(xié)議、請(qǐng)求Path、HTTP Method、入?yún)⒄?qǐng)求模式和入?yún)⒍x。
在定義API后端服務(wù)配置向?qū)ы撁妫x擇后端服務(wù)類型和后端服務(wù),然后單擊下一步。
(可選)在定義返回結(jié)果配置向?qū)ы撁妫O(shè)置返回結(jié)果示例和失敗返回結(jié)果示例,用于生成API幫助文檔,然后單擊創(chuàng)建。
API創(chuàng)建完成后,單擊其右側(cè)操作列的發(fā)布,將配置好的API發(fā)布至線上環(huán)境。
在API列表頁面,單擊目標(biāo)API操作列的圖標(biāo),然后單擊授權(quán)。
在授權(quán)面板,設(shè)置授權(quán)有效時(shí)間并添加需要授權(quán)的應(yīng)用,然后單擊確定。
步驟五:調(diào)試API
在API列表頁面,找到步驟三:創(chuàng)建API并對(duì)其授權(quán)中創(chuàng)建的API,在其右側(cè)操作列,單擊調(diào)試。
將調(diào)試環(huán)境選擇為線上,驗(yàn)證方式選擇為使用AppCode,設(shè)置請(qǐng)求參數(shù),單擊發(fā)送請(qǐng)求。
查看事件詳情
- 登錄事件總線EventBridge控制臺(tái),在左側(cè)導(dǎo)航欄,單擊事件總線。
- 在事件總線頁面,單擊目標(biāo)自定義事件總線名稱。
在左側(cè)導(dǎo)航欄,單擊事件追蹤,設(shè)置查詢方式為按事件范圍查詢或者按事件ID查詢,單擊查詢。
單擊目標(biāo)事件ID操作列的事件詳情,即可查看事件的具體內(nèi)容。
查詢到的事件詳情如下所示:
{ "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規(guī)范中定義的參數(shù)解釋,請(qǐng)參見事件概述。
data字段包含的參數(shù)解釋如下表所示:
參數(shù)
類型
示例值
描述
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請(qǐng)求頭。
path
String
/test/eb/1
HTTP請(qǐng)求路徑。
pathParameters
Map
無
路徑參數(shù)。
body
String/Map
無
HTTP請(qǐng)求消息正文。如果HTTP請(qǐng)求的Content-Type字段取值為application/json,消息正文將按照J(rèn)SON進(jìn)行解析,否則按照普通字符串解析。
method
String
GET
HTTP請(qǐng)求方法。
queryParameters
Map
無
HTTP請(qǐng)求的query參數(shù)去除token的內(nèi)容。