背景資訊
事件匯流排EventBridge支援的事件內容轉換類型如下:
完整事件
當轉化類型為完整事件時,事件匯流排EventBridge不對事件進行轉換,將原生CloudEvents的完整結構路由到事件目標。下表介紹經過完整事件轉換前後的事件樣本。
轉換前的事件 | 轉換類型 | 轉換後的事件 |
{
"id":"7adc8c1a-645d-4476-bdef-5d6fb57f****",
"source":"acs.oss",
"specversion":"1.0",
"type":"oss:ObjectCreated:PostObject",
"datacontenttype":"application/json",
"dataschema":"http://example.com/test.json",
"subject":"acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg",
"time":"2020-08-17T16:04:46.149Asia/Shanghai",
"aliyuneventbusname":"demo-bus",
"aliyunregionid":"Shanghai",
"data":{
"name":"test",
"scope":100
}
}
| 完整事件 | {
"id":"7adc8c1a-645d-4476-bdef-5d6fb57f****",
"source":"acs.oss",
"specversion":"1.0",
"type":"oss:ObjectCreated:PostObject",
"datacontenttype":"application/json",
"dataschema":"http://example.com/test.json",
"subject":"acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg",
"time":"2020-08-17T16:04:46.149Asia/Shanghai",
"aliyuneventbusname":"demo-bus",
"aliyunregionid":"Shanghai",
"data":{
"name":"test",
"scope":100
}
}
|
部分事件
當轉換類型為部分事件時,事件匯流排EventBridge通過JSONPath從CloudEvents中提取事件中的參數,將指定的事件內容路由到事件目標。下表介紹經過部分事件轉換前後的事件樣本。
轉換前的事件 | 轉換類型 | 轉換後的事件 |
{
"id":"7adc8c1a-645d-4476-bdef-5d6fb57f****",
"source":"acs.oss",
"specversion":"1.0",
"type":"oss:ObjectCreated:PostObject",
"datacontenttype":"application/json",
"dataschema":"http://example.com/test.json",
"subject":"acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg",
"time":"2020-08-17T16:04:46.149Asia/Shanghai",
"aliyuneventbusname":"demo-bus",
"aliyunregionid":"Shanghai",
"data":{
"name":"test",
"scope":100
}
}
| 部分事件 $.data.name
說明 部分事件只支援定義一個變數。 value不超過10240個字元。
| test
|
固定值
當轉換類型為固定值時,事件只起到觸發器的作用,不管事件內容是什麼,事件匯流排EventBridge都把固定值路由到事件目標。下表介紹經過固定值轉換前後的事件樣本。
轉換前的事件 | 轉換類型 | 轉換後的事件 |
{
"id":"7adc8c1a-645d-4476-bdef-5d6fb57f****",
"source":"acs.oss",
"specversion":"1.0",
"type":"oss:ObjectCreated:PostObject",
"datacontenttype":"application/json",
"dataschema":"http://example.com/test.json",
"subject":"acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg",
"time":"2020-08-17T16:04:46.149Asia/Shanghai",
"aliyuneventbusname":"demo-bus",
"aliyunregionid":"Shanghai",
"data":{
"name":"test",
"scope":100
}
}
| 固定值 test1
| test1
|
模板
當轉換類型為模板時,通過自訂模板、定義模板裡需要的變數,事件匯流排EventBridge通過JSONPath從CloudEvents提取事件中的參數,把這些值存放在變數中,然後按照模板定義的格式路由到事件目標。下表介紹經過模板轉換前後的事件樣本。
轉換前的事件 | 轉換類型 | 轉換後的事件 |
{
"id":"7adc8c1a-645d-4476-bdef-5d6fb57f****",
"source":"acs.oss",
"specversion":"1.0",
"type":"oss:ObjectCreated:PostObject",
"datacontenttype":"application/json",
"dataschema":"http://example.com/test.json",
"subject":"acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg",
"time":"2020-08-17T16:04:46.149Asia/Shanghai",
"aliyuneventbusname":"demo-bus",
"aliyunregionid":"Shanghai",
"data":{
"name":"test",
"scope":100
}
}
| 模板 變數 {
"name":"$.data.name",
"constant":"Please deal with it timely."
}
模板 The instance is broken,which name is ${name}, ${constant}
| The instance is broken,which name is test, Please deal with it timely.
|
您也可以建立String格式和JSON格式的模板,通過自訂模板將事件轉換成樣本輸出,然後路由到事件目標。以下為事件匯流排EventBridge支援的模板類型:
表 1. 簡單String轉換前的事件 | 轉換類型 | 轉換後的事件 |
{
"id":"7adc8c1a-645d-4476-bdef-5d6fb57f****",
"source":"acs.oss",
"specversion":"1.0",
"type":"oss:ObjectCreated:PostObject",
"datacontenttype":"application/json",
"dataschema":"http://example.com/test.json",
"subject":"acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg",
"time":"2020-08-17T16:04:46.149Asia/Shanghai",
"aliyuneventbusname":"demo-bus",
"aliyunregionid":"Shanghai",
"data":{
"name":"test",
"state":"RUNNING"
}
}
| 模板 | "name test is in RUNNING"
|
表 2. 簡單JSON轉換前的事件 | 轉換類型 | 轉換後的事件 |
{
"id":"7adc8c1a-645d-4476-bdef-5d6fb57f****",
"source":"acs.oss",
"specversion":"1.0",
"type":"oss:ObjectCreated:PostObject",
"datacontenttype":"application/json",
"dataschema":"http://example.com/test.json",
"subject":"acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg",
"time":"2020-08-17T16:04:46.149Asia/Shanghai",
"aliyuneventbusname":"demo-bus",
"aliyunregionid":"Shanghai",
"data":{
"name":"test",
"state":"RUNNING"
}
}
| 模板 變數 {
"name":"$.data.name",
"state":"$.data.state"
}
模板 {
"name":"${name}",
"state":"${state}"
}
| {
"name":"test",
"state":"RUNNING"
}
|
表 3. 混合變數和固定值的JSON轉換前的事件 | 轉換類型 | 轉換後的事件 |
{
"id":"7adc8c1a-645d-4476-bdef-5d6fb57f****",
"source":"acs.oss",
"specversion":"1.0",
"type":"oss:ObjectCreated:PostObject",
"datacontenttype":"application/json",
"dataschema":"http://example.com/test.json",
"subject":"acs:oss:cn-hangzhou:1234567:xls-papk/game_apk/123.jpg",
"time":"2020-08-17T16:04:46.149Asia/Shanghai",
"aliyuneventbusname":"demo-bus",
"aliyunregionid":"Shanghai",
"data":{
"name":"test",
"state":"RUNNING"
}
}
| 模板 變數 {
"name":"$.data.name",
"state":"$.data.state"
}
模板 {
"name":"${name}",
"state":[
9,
"${state}",
true
],
"Transformed":"Yes"
}
| {
"name":"test",
"state":[
9,
"RUNNING",
true
],
"Transformed":"Yes"
}
|