Function Compute每個類型的觸發器,其event內容和結構都會根據觸發事件的具體情況有所不同,函數在被調用時可以根據event中的資訊來執行相應的商務邏輯處理。
使用說明
觸發器觸發事件,傳遞到函數的Event參數需要您自行在代碼中解析才能使用。關於解析Event參數的程式碼範例,請參見樣本一:解析JSON格式參數。
HTTP觸發器
HTTP觸發器有別於其他觸發器,函數簽名是請求(Request)和響應(Response)對象,而不是事件(event)對象。所以HTTP觸發器沒有事件格式。具體資訊,請參見配置HTTP觸發器並使用HTTP觸發。
定時觸發器
{
"triggerTime":"2023-12-26T07:49:00Z",
"triggerName":"timer-trigger",
"payload":"awesome-fc"
}
參數 | 類型 | 樣本值 | 描述 |
triggerTime | String | 2023-12-26T07:49:00Z | 函數被觸發的時間。 |
triggerName | String | timer-trigger | 定時觸發器的名稱。 |
payload | String | awesome-fc | 您在觸發器配置裡輸入的自訂參數,即觸發訊息的值。 |
OSS觸發器
{
"events": [
{
"eventName": "ObjectCreated:PutObject",
"eventSource": "acs:oss",
"eventTime": "2022-08-13T06:45:43.000Z",
"eventVersion": "1.0",
"oss": {
"bucket": {
"arn": "acs:oss:cn-hangzhou:123456789:testbucket",
"name": "testbucket",
"ownerIdentity": "164901546557****"
},
"object": {
"deltaSize": 122539,
"eTag": "688A7BF4F233DC9C88A80BF985AB****",
"key": "source/a.png",
"size": 122539
},
"ossSchemaVersion": "1.0",
"ruleId": "9adac8e253828f4f7c0466d941fa3db81161****"
},
"region": "cn-hangzhou",
"requestParameters": {
"sourceIPAddress": "140.205.XX.XX"
},
"responseElements": {
"requestId": "58F9FF2D3DF792092E12044C"
},
"userIdentity": {
"principalId": "164901546557****"
}
}
]
}
event參數中不同屬性欄位的解釋如下表所示。
參數 | 類型 | 樣本值 | 描述 |
eventName | String | ObjectCreated:PutObject | 事件類型。 |
eventSource | String | acs:oss | 事件來源,固定為 |
eventTime | String | 2022-08-13T06:45:43.000Z | 事件產生的時間。使用ISO-8601標準時間格式。 |
eventVersion | String | 1.0 | 事件協議的版本。 |
oss | Map | OSS事件內容。 | |
bucket | Map | bucket參數內容。 | |
name | String | testbucket | Bucket的名稱。 |
arn | String | acs:oss:cn-hangzhou:123456789:testbucket | Bucket的唯一識別碼。 |
ownerIdentity | String | 164901546557**** | 建立Bucket的使用者ID。 |
object | Map | object參數內容。 | |
size | Int | 122539 | object的大小。單位:Byte。 |
deltaSize | Int | 122539 | object的大小變化量。單位:Byte。
|
eTag | String | 688A7BF4F233DC9C88A80BF985AB**** | Object的標籤。 |
key | String | source/a.png | Object的名稱。 |
ossSchemaVersion | String | 1.0 | OSS模式的版本號碼。 |
ruleId | String | 9adac8e253828f4f7c0466d941fa3db81161**** | 事件匹配的規則ID。 |
region | String | cn-hangzhou | Bucket所在的地區。 |
requestParameters | Map | 請求參數。 | |
sourceIPAddress | String | 140.205.XX.XX | 請求的源IP地址。 |
responseElements | Map | 響應元素。 | |
requestId | String | 58F9FF2D3DF792092E12044C | 請求對應的Request ID。 |
userIdentity | Map | 使用者屬性。 | |
principalId | String | 164901546557**** | 請求發起者的阿里雲帳號ID。 |
SLS觸發器
event是Function Compute的入口參數。具體格式如下:
{
"parameter": {},
"source": {
"endpoint": "http://cn-hangzhou-intranet.log.aliyuncs.com",
"projectName": "aliyun-fc-cn-hangzhou-2238f0df-a742-524f-9f90-976ba457****",
"logstoreName": "function-log",
"shardId": 0,
"beginCursor": "MTUyOTQ4MDIwOTY1NTk3ODQ2Mw==",
"endCursor": "MTUyOTQ4MDIwOTY1NTk3ODQ2NA=="
},
"jobName": "1f7043ced683de1a4e3d8d70b5a412843d81****",
"taskId": "c2691505-38da-4d1b-998a-f1d4bb8c****",
"cursorTime": 1529486425
}
參數 | 描述 | 本文樣本 |
parameter | 您配置觸發器時填寫的調用參數的值。 | 無。 |
source | 設定函數讀取的日誌塊資訊。
|
|
jobName | Log ServiceETL Job名字,函數配置的SLS觸發器對應一個Log Service的ETL Job。 | 1f7043ced683de1a4e3d8d70b5a412843d81**** |
taskId | 對於ETL Job而言,taskId是一個確定性函數調用標識。 | c2691505-38da-4d1b-998a-f1d4bb8c**** |
cursorTime | 最後一條日誌到達Log Service端的Unix時間戳記,單位:秒。 | 1529486425 |
CDN觸發器
event是Function Compute的入口參數,具體格式如下。其中,對於不同的CDN事件類型,eventParameter中包含的索引值對不同。
LogFileCreated事件的event樣本。
替換
filePath
為您CDN日誌的路徑,或任何測試檔案。{ "events": [ { "eventName": "LogFileCreated", "eventSource": "cdn", "region": "cn-hangzhou", "eventVersion": "1.0.0", "eventTime": "2018-06-14T15:31:49+08:00", "traceId": "c6459282-6a4d-4413-894c-e4ea3968****", "userIdentity": { "aliUid": "164901546557****" }, "resource": { "domain": "example.com" }, "eventParameter": { "domain": "example.com", "endTime": 1528959900, "fileSize": 1788115, "filePath": "http://cdnlog.cn-hangzhou.oss.aliyun-inc.com/www.aliyun.com/2017_12_27/www.aliyun.com_2017_12_27_0800_0900.gz?OSSAccessKeyId=xxxx&Expires=xxxx&Signature=xxxx", "startTime": 1528959600 } } ] }
event參數中不同屬性欄位的解釋如下表所示。
參數
類型
樣本值
描述
eventName
String
LogFileCreated
事件類型。
eventSource
String
cdn
事件來源名稱。
region
String
cn-hangzhou
CDN所在地區,預設為cn-hangzhou。
eventVersion
String
1.0.0
事件觸發版本。
eventTime
String
2018-06-14T15:31:49+08:00
事件發生時間。
traceId
String
c6459282-6a4d-4413-894c-e4ea3968****
事件來源傳遞的ID,用於排查問題。
userIdentity
Map
使用者屬性。
aliUid
String
164901546557****
阿里雲帳號ID。
resource
Map
資源資訊。
domain
String
example.com
網域名稱。
eventParameter
Map
事件參數。
domain
String
example.com
網域名稱。
endTime
String
1528959900
記錄檔的結束時間。
fileSize
String
1788115
記錄檔大小。
filePath
String
http://cdnlog.cn-hangzhou.oss.aliyun-inc.com/www.aliyun.com/2017_12_27/www.aliyun.com_2017_12_27_0800_0900.gz?OSSAccessKeyId=xxxx&Expires=xxxx&Signature=xxxx
記錄檔地址。
startTime
String
1528959600
記錄檔的起始時間。
CachedObjectsRefreshed和CachedObjectsPushed事件的event樣本。
{ "events": [ { "eventName": "CachedObjectsRefreshed", "eventVersion": "1.0.0", "eventSource": "cdn", "region": "cn-hangzhou", "eventTime": "2018-03-16T14:19:55+08:00", "traceId": "cf89e5a8-7d59-4bb5-a33e-4c3d08e2****", "resource": { "domain": "example.com" }, "eventParameter": { "objectPath": [ "/2018/03/16/13/33b430c57e7.mp4", "/2018/03/16/14/4ff6b9bd54d.mp4" ], "createTime": 1521180769, "domain": "example.com", "completeTime": 1521180777, "objectType": "File", "taskId": 2089687230 }, "userIdentity": { "aliUid": "164901546557****" } } ] }
event參數中不同屬性欄位的解釋如下表所示。
參數
類型
樣本值
描述
eventName
String
CachedObjectsRefreshed
事件類型。
eventSource
String
cdn
事件來源名稱。
region
String
cn-hangzhou
CDN所在地區,預設為cn-hangzhou。
eventVersion
String
1.0.0
事件觸發版本。
eventTime
String
2018-06-14T15:31:49+08:00
事件發生時間。
traceId
String
c6459282-6a4d-4413-894c-e4ea3968****
事件來源傳遞的ID,用於排查問題。
resource
Map
資源資訊。
domain
String
example.com
網域名稱。
eventParameter
Map
事件參數。
objectPath
String
/2018/03/16/13/33b430c57e7.mp4
資源標識。
createTime
String
1521180769
重新整理開始時間。
domain
String
example.com
網域名稱。
completeTime
String
1521180777
重新整理結束時間。
objectType
String
File
重新整理類型,取值說明如下:
File:檔案。
Directory:檔案夾。
taskId
String
2089687230
資源重新整理任務ID。
userIdentity
Map
使用者屬性。
aliUid
String
164901546557****
阿里雲帳號ID。
CdnDomainStarted和CdnDomainStopped事件的event樣本。
{ "events": [ { "eventName": "CdnDomainStarted", "eventVersion": "1.0.0", "eventSource": "cdn", "region": "cn-hangzhou", "eventTime": "2018-03-16T14:19:55+08:00", "traceId": "cf89e5a8-7d59-4bb5-a33e-4c3d08e2****", "resource": { "domain": "example.com" }, "eventParameter": { "domain": "example.com", "status": "online" }, "userIdentity": { "aliUid": "164901546557****" } } ] }
event參數中不同屬性欄位的解釋如下表所示。
參數
類型
樣本值
描述
eventName
String
CdnDomainStarted
事件類型。
eventSource
String
cdn
事件來源名稱。
region
String
cn-hangzhou
CDN所在地區,預設為cn-hangzhou。
eventVersion
String
1.0.0
事件觸發版本。
eventTime
String
2018-06-14T15:31:49+08:00
事件發生時間。
traceId
String
c6459282-6a4d-4413-894c-e4ea3968****
事件來源傳遞的ID,用於排查問題。
resource
Map
資源資訊。
domain
String
example.com
網域名稱。
eventParameter
Map
事件參數。
domain
String
example.com
網域名稱。
status
String
online
網域名稱狀態。
userIdentity
Map
使用者屬性。
aliUid
String
164901546557****
阿里雲帳號ID。
CdnDomainAdded和CdnDomainDeleted事件的event樣本。
{ "events": [ { "eventName": "CdnDomainAdded", "eventVersion": "1.0.0", "eventSource": "cdn", "region": "cn-hangzhou", "eventTime": "2018-03-16T14:19:55+08:00", "traceId": "cf89e5a8-7d59-4bb5-a33e-4c3d08e2****", "resource": { "domain": "example.com" }, "eventParameter": { "domain": "example.com" }, "userIdentity": { "aliUid": "164901546557****" } } ] }
event參數中不同屬性欄位的解釋如下表所示。
參數
類型
樣本值
描述
eventName
String
CdnDomainAdded
事件類型。
eventSource
String
cdn
事件來源名稱。
region
String
cn-hangzhou
CDN所在地區,預設為cn-hangzhou。
eventVersion
String
1.0.0
事件觸發版本。
eventTime
String
2018-06-14T15:31:49+08:00
事件發生時間。
traceId
String
c6459282-6a4d-4413-894c-e4ea3968****
事件來源傳遞的ID,用於排查問題。
resource
Map
資源資訊。
domain
String
example.com
網域名稱。
eventParameter
Map
事件參數。
domain
String
example.com
網域名稱。
userIdentity
Map
使用者屬性。
aliUid
String
164901546557****
阿里雲帳號ID。
Tablestore觸發器
{
"Version": "Sync-v1",
"Records": [
{
"Type": "PutRow",
"Info": {
"Timestamp": 1506416585740836
},
"PrimaryKey": [
{
"ColumnName": "pk_0",
"Value": 1506416585881590900
},
{
"ColumnName": "pk_1",
"Value": "2017-09-26 17:03:05.8815909 +0800 CST"
},
{
"ColumnName": "pk_2",
"Value": 1506416585741000
}
],
"Columns": [
{
"Type": "Put",
"ColumnName": "attr_0",
"Value": "hello_table_store",
"Timestamp": 1506416585741
},
{
"Type": "Put",
"ColumnName": "attr_1",
"Value": 1506416585881590900,
"Timestamp": 1506416585741
}
]
}
]
}
event參數中不同屬性欄位的解釋如下表所示。
參數 | 描述 |
Version | Payload版本號碼。樣本如Sync-v1。類型為String。 |
Records | 資料表中的增量資料行數組。包含如下內部成員:
|
PrimaryKey | 主鍵列數組。包含如下內部成員:
|
Columns | 屬性列數組。包括如下內部成員:
|
MNS主題觸發器
建立觸發器時,若event格式設定為STREAM。
當訊息中不含訊息屬性(MessageAttributes)時,event格式如下。
說明當訊息中不含訊息屬性(MessageAttributes)時,event的內容格式為JSON字串。
# 訊息本文。 'hello topic'
當訊息中含有訊息屬性(MessageAttributes)時,event格式如下。
說明event的內容中包含MessageAttributes相關的索引值對。更多資訊,請參見PublishMessage。
{ "body": "hello topic", "attrs": { "Extend": "{\\"key\\":\\"value\\"}" } }
建立觸發器時,若event格式設定為JSON。
當訊息中不含訊息屬性(MessageAttributes)時,event格式如下。
{ "TopicOwner": "118620210433****", "Message": "hello topic", "Subscriber": "118620210433****", "PublishTime": 1550216480040, "SubscriptionName": "test-fc-subscribe", "MessageMD5": "BA4BA9B48AC81F0F9C66F6C909C3****", "TopicName": "Mytopic", "MessageId": "2F5B3C082B923D4EAC694B76D928****" }
當訊息中含有訊息屬性(MessageAttributes)時,event格式如下。
說明event的內容中包含MessageAttributes相關的索引值對。更多資訊,請參見PublishMessage。
{ "key": "value", "TopicOwner": "118620210433****", "Message": "hello topic", "Subscriber": "118620210433****", "PublishTime": 1550216302888, "SubscriptionName": "test-fc-subscribe", "MessageMD5": "BA4BA9B48AC81F0F9C66F6C909C3****", "TopicName": "Mytopic", "MessageId": "2F5B3C281B283D4EAC694B742528****" }
MNS隊列觸發器
event
格式如下所示。{
"id":"c2g71017-6f65-fhcf-a814-a396fc8d****",
"source":"MNS-Function-mnstrigger",
"specversion":"1.0",
"type":"mns:Queue:SendMessage",
"datacontenttype":"application/json; charset=utf-8",
"subject":"acs:mns:cn-hangzhou:164901546557****:queues/zeus",
"time":"2021-04-08T06:28:17.093Z",
"aliyunaccountid":"164901546557****",
"aliyunpublishtime":"2021-10-15T07:06:34.028Z",
"aliyunoriginalaccountid":"164901546557****",
"aliyuneventbusname":"MNS-Function-mnstrigger",
"aliyunregionid":"cn-chengdu",
"aliyunpublishaddr":"42.120.XX.XX",
"data":{
"requestId":"606EA3074344430D4C81****",
"messageId":"C6DB60D1574661357FA227277445****",
"messageBody":"TEST"
}
}
event
格式如下所示。[
{
"id":"c2g71017-6f65-fhcf-a814-a396fc8d****",
"source":"MNS-Function-mnstrigger",
"specversion":"1.0",
"type":"mns:Queue:SendMessage",
"datacontenttype":"application/json; charset=utf-8",
"subject":"acs:mns:cn-hangzhou:164901546557****:queues/zeus",
"time":"2021-04-08T06:28:17.093Z",
"aliyunaccountid":"164901546557****",
"aliyunpublishtime":"2021-10-15T07:06:34.028Z",
"aliyunoriginalaccountid":"164901546557****",
"aliyuneventbusname":"MNS-Function-mnstrigger",
"aliyunregionid":"cn-chengdu",
"aliyunpublishaddr":"42.120.XX.XX",
"data":{
"requestId":"606EA3074344430D4C81****",
"messageId":"C6DB60D1574661357FA227277445****",
"messageBody":"TEST"
}
},
{
"id":"d2g71017-6f65-fhcf-a814-a396fc8d****",
"source":"MNS-Function-mnstrigger",
"specversion":"1.0",
"type":"mns:Queue:SendMessage",
"datacontenttype":"application/json; charset=utf-8",
"subject":"acs:mns:cn-hangzhou:164901546557****:queues/zeus",
"time":"2021-04-08T06:28:17.093Z",
"aliyunaccountid":"164901546557****",
"aliyunpublishtime":"2021-10-15T07:06:34.028Z",
"aliyunoriginalaccountid":"164901546557****",
"aliyuneventbusname":"MNS-Function-mnstrigger",
"aliyunregionid":"cn-chengdu",
"aliyunpublishaddr":"42.120.XX.XX",
"data":{
"requestId":"606EA3074344430D4C81****",
"messageId":"C6DB60D1574661357FA227277445****",
"messageBody":"TEST"
}
}
]
參數 | 類型 | 樣本值 | 描述 |
requestId | String | 606EA3074344430D4C81**** | 請求ID。每個請求的ID取值唯一。 |
messageId | String | C6DB60D1574661357FA227277445**** | 訊息ID。每條訊息的ID取值唯一。 |
messageBody | String | TEST | 訊息內容。 |
RocketMQ觸發器
event
格式如下所示。{
"id":"94ebc15f-f0db-4bbe-acce-56fb72fb****",
"source":"RocketMQ-Function-rocketmq-trigger",
"specversion":"1.0",
"type":"mq:Topic:SendMessage",
"datacontenttype":"application/json; charset=utf-8",
"subject":"acs:mq:cn-hangzhou:164901546557****:MQ_INST_164901546557****_BXhFHryi%TopicName",
"time":"2021-04-08T06:01:20.766Z",
"aliyunaccountid":"164901546557****",
"aliyunpublishtime":"2021-10-15T02:05:16.791Z",
"aliyunoriginalaccountid":"164901546557****",
"aliyuneventbusname":"RocketMQ-Function-rocketmq-trigger",
"aliyunregionid":"cn-chengdu",
"aliyunpublishaddr":"42.120.XX.XX",
"data":{
"topic":"TopicName",
"systemProperties":{
"MIN_OFFSET":"0",
"TRACE_ON":"true",
"MAX_OFFSET":"8",
"MSG_REGION":"cn-hangzhou",
"KEYS":"systemProperties.KEYS",
"CONSUME_START_TIME":1628577790396,
"TAGS":"systemProperties.TAGS",
"INSTANCE_ID":"MQ_INST_164901546557****_BXhFHryi"
},
"userProperties":{
},
"body":"TEST"
}
}
event
格式如下所示。[
{
"id":"94ebc15f-f0db-4bbe-acce-56fb72fb****",
"source":"RocketMQ-Function-rocketmq-trigger",
"specversion":"1.0",
"type":"mq:Topic:SendMessage",
"datacontenttype":"application/json; charset=utf-8",
"subject":"acs:mq:cn-hangzhou:164901546557****:MQ_INST_164901546557****_BXhFHryi%TopicName",
"time":"2021-04-08T06:01:20.766Z",
"aliyunaccountid":"164901546557****",
"aliyunpublishtime":"2021-10-15T02:05:16.791Z",
"aliyunoriginalaccountid":"164901546557****",
"aliyuneventbusname":"RocketMQ-Function-rocketmq-trigger",
"aliyunregionid":"cn-chengdu",
"aliyunpublishaddr":"42.120.XX.XX",
"data":{
"topic":"TopicName",
"systemProperties":{
"MIN_OFFSET":"0",
"TRACE_ON":"true",
"MAX_OFFSET":"8",
"MSG_REGION":"cn-hangzhou",
"KEYS":"systemProperties.KEYS",
"CONSUME_START_TIME":1628577790396,
"TAGS":"systemProperties.TAGS",
"INSTANCE_ID":"MQ_INST_164901546557****_BXhFHryi"
},
"userProperties":{
},
"body":"TEST"
}
},
{
"id":"94ebc15f-f0db-4bbe-acce-56fb72fb****",
"source":"RocketMQ-Function-rocketmq-trigger",
"specversion":"1.0",
"type":"mq:Topic:SendMessage",
"datacontenttype":"application/json; charset=utf-8",
"subject":"acs:mq:cn-hangzhou:164901546557****:MQ_INST_164901546557****_BXhFHryi%TopicName",
"time":"2021-04-08T06:01:20.766Z",
"aliyunaccountid":"164901546557****",
"aliyunpublishtime":"2021-10-15T02:05:16.791Z",
"aliyunoriginalaccountid":"164901546557****",
"aliyuneventbusname":"RocketMQ-Function-rocketmq-trigger",
"aliyunregionid":"cn-chengdu",
"aliyunpublishaddr":"42.120.XX.XX",
"data":{
"topic":"TopicName",
"systemProperties":{
"MIN_OFFSET":"0",
"TRACE_ON":"true",
"MAX_OFFSET":"8",
"MSG_REGION":"cn-hangzhou",
"KEYS":"systemProperties.KEYS",
"CONSUME_START_TIME":1628577790396,
"TAGS":"systemProperties.TAGS",
"INSTANCE_ID":"MQ_INST_164901546557****_BXhFHryi"
},
"userProperties":{
},
"body":"TEST"
}
}
]
參數 | 類型 | 樣本值 | 描述 |
topic | String | TopicName | Topic名稱。 |
systemProperties | Map | 系統屬性。 | |
MIN_OFFSET | Int | 0 | 最低位點。 |
TRACE_ON | Boolean | true | 是否有訊息軌跡。取值說明如下:
|
MAX_OFFSET | Int | 8 | 最高位點。 |
MSG_REGION | String | cn-hangzhou | 發送訊息的地區。 |
KEYS | String | systemProperties.KEYS | 過濾屬性。 |
CONSUME_START_TIME | Long | 1628577790396 | 開始消費時間。單位:毫秒。 |
UNIQ_KEY | String | AC14C305069E1B28CDFA3181CDA2**** | 訊息唯一鍵。 |
TAGS | String | systemProperties.TAGS | 過濾屬性。 |
INSTANCE_ID | String | MQ_INST_123456789098****_BXhFHryi | 執行個體ID。 |
userProperties | Map | 無 | 使用者屬性。 |
body | String | TEST | 訊息內容。 |
RabbitMQ觸發器
event
格式如下所示。 {
"id":"bj694332-4cj1-389e-9d8c-b137h30b****",
"source":"RabbitMQ-Function-rabbitmq-trigger",
"specversion":"1.0",
"type":"amqp:Queue:SendMessage",
"datacontenttype":"application/json;charset=utf-8",
"subject":"acs:amqp:cn-hangzhou:164901546557****:/instances/amqp-cn-tl32e756****/vhosts/eb-connect/queues/housekeeping",
"time":"2021-08-12T06:56:40.709Z",
"aliyunaccountid":"164901546557****",
"aliyunpublishtime":"2021-10-15T08:58:55.140Z",
"aliyunoriginalaccountid":"164901546557****",
"aliyuneventbusname":"RabbitMQ-Function-rabbitmq-trigger",
"aliyunregionid":"cn-chengdu",
"aliyunpublishaddr":"42.120.XX.XX",
"data":{
"envelope":{
"deliveryTag":98,
"exchange":"",
"redeliver":false,
"routingKey":"housekeeping"
},
"body":{
"Hello":"RabbitMQ"
},
"props":{
"contentEncoding":"UTF-8",
"messageId":"f7622d51-e198-41de-a072-77c1ead7****"
}
}
}
event
格式如下所示。[
{
"id":"bj694332-4cj1-389e-9d8c-b137h30b****",
"source":"RabbitMQ-Function-rabbitmq-trigger",
"specversion":"1.0",
"type":"amqp:Queue:SendMessage",
"datacontenttype":"application/json;charset=utf-8",
"subject":"acs:amqp:cn-hangzhou:164901546557****:/instances/amqp-cn-tl32e756****/vhosts/eb-connect/queues/housekeeping",
"time":"2021-08-12T06:56:40.709Z",
"aliyunaccountid":"164901546557****",
"aliyunpublishtime":"2021-10-15T08:58:55.140Z",
"aliyunoriginalaccountid":"164901546557****",
"aliyuneventbusname":"RabbitMQ-Function-rabbitmq-trigger",
"aliyunregionid":"cn-chengdu",
"aliyunpublishaddr":"42.120.XX.XX",
"data":{
"envelope":{
"deliveryTag":98,
"exchange":"",
"redeliver":false,
"routingKey":"housekeeping"
},
"body":{
"Hello":"RabbitMQ"
},
"props":{
"contentEncoding":"UTF-8",
"messageId":"f7622d51-e198-41de-a072-77c1ead7****"
}
}
},
{
"id":"bj694332-4cj1-389e-9d8c-b137h30b****",
"source":"RabbitMQ-Function-rabbitmq-trigger",
"specversion":"1.0",
"type":"amqp:Queue:SendMessage",
"datacontenttype":"application/json;charset=utf-8",
"subject":"acs:amqp:cn-hangzhou:164901546557****:/instances/amqp-cn-tl32e756****/vhosts/eb-connect/queues/housekeeping",
"time":"2021-08-12T06:56:40.709Z",
"aliyunaccountid":"164901546557****",
"aliyunpublishtime":"2021-10-15T08:58:55.140Z",
"aliyunoriginalaccountid":"164901546557****",
"aliyuneventbusname":"RabbitMQ-Function-rabbitmq-trigger",
"aliyunregionid":"cn-chengdu",
"aliyunpublishaddr":"42.120.XX.XX",
"data":{
"envelope":{
"deliveryTag":98,
"exchange":"",
"redeliver":false,
"routingKey":"housekeeping"
},
"body":{
"Hello":"RabbitMQ"
},
"props":{
"contentEncoding":"UTF-8",
"messageId":"f7622d51-e198-41de-a072-77c1ead7****"
}
}
}
]
參數 | 類型 | 樣本值 | 描述 |
body | Map | 訊息內容。 | |
Hello | String | EventBridge | 使用者資料。 |
props | Map | 訊息屬性。 | |
contentEncoding | String | utf-8 | 訊息內容編碼。 |
messageId | String | f7622d51-e198-41de-a072-77c1ead7**** | 訊息ID。每條訊息的ID取值唯一。 |
envelope | Map | 訊息的envelope資訊。 | |
deliveryTag | Int | 98 | 訊息的Tag。 |
exchange | String | 無 | 訊息的Exchange。 |
redeliver | Boolean | false | 是否支援重發訊息。取值說明如下:
|
routingKey | String | housekeeping | 訊息的路由規則。 |
Kafka觸發器
[
{
"specversion":"1.0",
"id":"8e215af8-ca18-4249-8645-f96c1026****",
"source":"acs:alikafka",
"type":"alikafka:Topic:Message",
"subject":"acs:alikafka_pre-cn-i7m2t7t1****:topic:mytopic",
"datacontenttype":"application/json; charset=utf-8",
"time":"2022-06-23T02:49:51.589Z",
"aliyunaccountid":"164901546557****",
"data":{
"topic":"****",
"partition":7,
"offset":25,
"timestamp":1655952591589,
"headers":{
"headers":[
],
"isReadOnly":false
},
"key":"keytest",
"value":"hello kafka msg"
}
},
{
"specversion":"1.0",
"id":"8e215af8-ca18-4249-8645-f96c1026****",
"source":"acs:alikafka",
"type":"alikafka:Topic:Message",
"subject":"acs:alikafka_pre-cn-i7m2t7t1****:topic:mytopic",
"datacontenttype":"application/json; charset=utf-8",
"time":"2022-06-23T02:49:51.589Z",
"aliyunaccountid":"164901546557****",
"data":{
"topic":"****",
"partition":7,
"offset":25,
"timestamp":1655952591589,
"headers":{
"headers":[
],
"isReadOnly":false
},
"key":"keytest",
"value":"hello kafka msg"
}
}
]
data欄位包含的參數解釋如下表所示。
參數 | 類型 | 樣本值 | 描述 |
topic | String | TopicName | Topic的名稱。 |
partition | Int | 1 | 雲訊息佇列 Kafka 版的消費分區資訊。 |
offset | Int | 0 | 雲訊息佇列 Kafka 版的訊息位點。 |
timestamp | String | 1655952591589 | 開始消費時間戳記。 |
DTS觸發器
event
格式如下所示:[
{
"data": {
"id": 321****,
"topicPartition": {
"hash": 0,
"partition": 0,
"topic": "cn_hangzhou_rm_1234****_test_version2"
},
"offset": 3218099,
"sourceTimestamp": 1654847757,
"operationType": "UPDATE",
"schema": {
"recordFields": [
{
"fieldName": "id",
"rawDataTypeNum": 8,
"isPrimaryKey": true,
"isUniqueKey": false,
"fieldPosition": 0
},
{
"fieldName": "topic",
"rawDataTypeNum": 253,
"isPrimaryKey": false,
"isUniqueKey": false,
"fieldPosition": 1
}
],
"nameIndex": {
"id": {
"fieldName": "id",
"rawDataTypeNum": 8,
"isPrimaryKey": true,
"isUniqueKey": false,
"fieldPosition": 0
},
"topic": {
"fieldName": "topic",
"rawDataTypeNum": 253,
"isPrimaryKey": false,
"isUniqueKey": false,
"fieldPosition": 1
}
},
"schemaId": "(hangzhou-test-db,hangzhou-test-db,message_info)",
"databaseName": "hangzhou--test-db",
"tableName": "message_info",
"primaryIndexInfo": {
"indexType": "PrimaryKey",
"indexFields": [
{
"fieldName": "id",
"rawDataTypeNum": 8,
"isPrimaryKey": true,
"isUniqueKey": false,
"fieldPosition": 0
}
],
"cardinality": 0,
"nullable": true,
"isFirstUniqueIndex": false
},
"uniqueIndexInfo": [],
"foreignIndexInfo": [],
"normalIndexInfo": [],
"databaseInfo": {
"databaseType": "MySQL",
"version": "5.7.35-log"
},
"totalRows": 0
},
"beforeImage": {
"recordSchema": {
"recordFields": [
{
"fieldName": "id",
"rawDataTypeNum": 8,
"isPrimaryKey": true,
"isUniqueKey": false,
"fieldPosition": 0
},
{
"fieldName": "topic",
"rawDataTypeNum": 253,
"isPrimaryKey": false,
"isUniqueKey": false,
"fieldPosition": 1
}
],
"nameIndex": {
"id": {
"fieldName": "id",
"rawDataTypeNum": 8,
"isPrimaryKey": true,
"isUniqueKey": false,
"fieldPosition": 0
},
"topic": {
"fieldName": "topic",
"rawDataTypeNum": 253,
"isPrimaryKey": false,
"isUniqueKey": false,
"fieldPosition": 1
}
},
"schemaId": "(hangzhou-test-db,hangzhou-test-db,message_info)",
"databaseName": "hangzhou-test-db",
"tableName": "message_info",
"primaryIndexInfo": {
"indexType": "PrimaryKey",
"indexFields": [
{
"fieldName": "id",
"rawDataTypeNum": 8,
"isPrimaryKey": true,
"isUniqueKey": false,
"fieldPosition": 0
}
],
"cardinality": 0,
"nullable": true,
"isFirstUniqueIndex": false
},
"uniqueIndexInfo": [],
"foreignIndexInfo": [],
"normalIndexInfo": [],
"databaseInfo": {
"databaseType": "MySQL",
"version": "5.7.35-log"
},
"totalRows": 0
},
"values": [
{
"data": 115
},
{
"data": {
"hb": [
104,
101,
108,
108,
111
],
"offset": 0,
"isReadOnly": false,
"bigEndian": true,
"nativeByteOrder": false,
"mark": -1,
"position": 0,
"limit": 9,
"capacity": 9,
"address": 0
},
"charset": "utf8mb4"
}
],
"size": 45
},
"afterImage": {
"recordSchema": {
"recordFields": [
{
"fieldName": "id",
"rawDataTypeNum": 8,
"isPrimaryKey": true,
"isUniqueKey": false,
"fieldPosition": 0
},
{
"fieldName": "topic",
"rawDataTypeNum": 253,
"isPrimaryKey": false,
"isUniqueKey": false,
"fieldPosition": 1
}
],
"nameIndex": {
"id": {
"fieldName": "id",
"rawDataTypeNum": 8,
"isPrimaryKey": true,
"isUniqueKey": false,
"fieldPosition": 0
},
"topic": {
"fieldName": "topic",
"rawDataTypeNum": 253,
"isPrimaryKey": false,
"isUniqueKey": false,
"fieldPosition": 1
}
},
"schemaId": "(hangzhou-test-db,hangzhou-test-db,message_info)",
"databaseName": "hangzhou-test-db",
"tableName": "message_info",
"primaryIndexInfo": {
"indexType": "PrimaryKey",
"indexFields": [
{
"fieldName": "id",
"rawDataTypeNum": 8,
"isPrimaryKey": true,
"isUniqueKey": false,
"fieldPosition": 0
}
],
"cardinality": 0,
"nullable": true,
"isFirstUniqueIndex": false
},
"uniqueIndexInfo": [],
"foreignIndexInfo": [],
"normalIndexInfo": [],
"databaseInfo": {
"databaseType": "MySQL",
"version": "5.7.35-log"
},
"totalRows": 0
},
"values": [
{
"data": 115
},
{
"data": {
"hb": [
98,
121,
101
],
"offset": 0,
"isReadOnly": false,
"bigEndian": true,
"nativeByteOrder": false,
"mark": -1,
"position": 0,
"limit": 11,
"capacity": 11,
"address": 0
},
"charset": "utf8mb4"
}
],
"size": 47
}
},
"id": "12f701a43741d404fa9a7be89d9acae0-321****",
"source": "DTSstreamDemo",
"specversion": "1.0",
"type": "dts:ConsumeMessage",
"datacontenttype": "application/json; charset=utf-8",
"time": "2022-06-10T07:55:57Z",
"subject": "acs:dts:cn-hangzhou:12345****:kk123abc60g782/dtsabcdet1ro"
}
]
CloudEvents規範中定義的參數解釋,請參見事件概述。
data欄位包含的參數解釋如下表所示。
參數 | 類型 | 說明 |
id | String | DTS資料ID。 |
topicPartition | Array | Topic的分區資訊。 |
hash | String | DTS底層儲存參數。 |
partition | String | Topic的分區。 |
topic | String | Topic的名稱。 |
offset | Int | DTS資料對應的訊息儲存位點。 |
sourceTimestamp | Int | DTS資料產生時間戳記。 |
operationType | String | DTS資料的操作類型。 |
schema | Array | 資料庫表結構資訊。 |
recordFields | Array | 欄位詳情記錄。 |
fieldName | String | 欄位名稱。 |
rawDataTypeNum | Int | 欄位類型映射值。 該值對應從資料訂閱通道中擷取的增量資料還原序列化後的dataTypeNumber欄位值,詳情請參見使用Kafka用戶端消費訂閱資料。 |
isPrimaryKey | Boolean | 欄位是否是主鍵。 |
isUniqueKey | Boolean | 欄位是否是唯一值。 |
fieldPosition | String | 欄位位置。 |
nameIndex | Array | 命名索引。 |
schemaId | String | 資料庫表結構資訊的ID。 |
databaseName | String | 資料庫名稱。 |
tableName | String | 資料表名稱。 |
primaryIndexInfo | String | 主鍵索引。 |
indexType | String | 主鍵索引類型。 |
indexFields | Array | 主鍵索引欄位內容。 |
cardinality | String | 主鍵基數。 |
nullable | Boolean | 主鍵是否可為null。 |
isFirstUniqueIndex | Boolean | 是否是第一個唯一索引。 |
uniqueIndexInfo | String | 唯一索引。 |
foreignIndexInfo | String | 外鍵索引。 |
normalIndexInfo | String | 普通索引。 |
databaseInfo | Array | 資料庫資訊。 |
databaseType | String | 資料庫類型。 |
version | String | 資料庫版本。 |
totalRows | Int | 資料表的總行數。 |
beforeImage | String | 操作前記錄欄位內容鏡像。 |
values | String | 記錄欄位的值。 |
size | Int | 記錄欄位大小。 |
afterImage | String | 操作後記錄欄位內容鏡像。 |
MQTT觸發器
event格式如下所示。
[
{
"props": {
"firstTopic": "testTopic",
"secondTopic": "/testMq4****",
"clientId": "consumerGroupID@@@xxx"
},
"body": "hello mq4Iot pub sub msg"
}
]
event欄位包含的參數解釋如下表所示。
參數 | 類型 | 樣本值 | 描述 |
props | Map | 訊息屬性。 | |
firstTopic | String | testTopic | 用於收發訊息的父級Topic。 |
secondTopic | String | /testMq4**** | 子級Topic。 |
clientId | String | consumerGroupID@@@xx | 用戶端ID。 |
body | String | hello mq4Iot pub sub msg | 訊息內容。 |
自建Apache RocketMQ觸發器
event格式如下所示。
[
{
"msgId": "7F0000010BDD2A84AEE70DA49B57****",
"topic": "testTopic",
"systemProperties": {
"UNIQ_KEY": "7F0000010BDD2A84AEE70DA49B57****",
"CLUSTER": "DefaultCluster",
"MIN_OFFSET": "0",
"TAGS": "TagA",
"MAX_OFFSET": "128"
},
"userProperties": {},
"body": "Hello RocketMQ"
}
]
event欄位包含的參數解釋如下表所示。
參數 | 類型 | 樣本值 | 描述 |
msgId | String | 7F0000010BDD2A84AEE70DA49B57**** | Apache RocketMQ訊息 ID。 |
topic | String | testTopic | Topic名稱。 |
systemProperties | Map | 系統屬性。 | |
UNIQ_KEY | String | 7F0000010BDD2A84AEE70DA49B57**** | 訊息唯一鍵。 |
CLUSTER | String | DefaultCluster | Apache RocketMQ叢集名稱。 |
MIN_OFFSET | Int | 0 | 最低位點。 |
MAX_OFFSET | Int | 128 | 最高位點。 |
TAGS | String | TagA | 過濾屬性。 |
userProperties | Map | 無 | 使用者屬性。 |
body | String | Hello RocketMQ | 訊息內容。 |
API Gateway觸發器
{
"path":"api request path",
"httpMethod":"request method name",
"headers":{all headers,including system headers},
"queryParameters":{query parameters},
"pathParameters":{path parameters},
"body":"string of request payload",
"isBase64Encoded":"true|false, indicate if the body is Base64-encode"
}
- 如果
isBase64Encoded
的值為true
,表示API Gateway傳給Function Compute的body內容已進行Base64編碼。Function Compute需要先對body內容進行Base64解碼後再處理。 - 如果
isBase64Encoded
的值為false
,表示API Gateway沒有對body內容進行Base64編碼,在函數中可以直接擷取body內容。
DataHub觸發器
{
"eventSource": "acs:datahub",
"eventName": "acs:datahub:putRecord",
"eventSourceARN": "/projects/test_project_name/topics/test_topic_name",
"region": "cn-hangzhou",
"records": [
{
"eventId": "0:12345",
"systemTime": 1463000123000,
"data": "[\"col1's value\",\"col2's value\"]"
},
{
"eventId": "0:12346",
"systemTime": 1463000156000,
"data": "[\"col1's value\",\"col2's value\"]"
}
]
}
更多資訊,請參見Event結構定義。