注意
触发器传递的入参事件结构已有部分定义,可直接使用。您可以通过 java cloud event 定义 获取 Java 的库并使用,通过 go cloud event 定义 获取 Golang 的库并使用。
API 网关触发器的集成请求事件消息结构
{"requestContext": {"serviceId": "service-f94sy04v","path": "/test/{path}","httpMethod": "POST","requestId": "c6af9ac6-****-****-9a41-93e8deadbeef","identity": {"secretId": "SECRET_ID" # 硬编码密钥到代码中有可能随代码泄露而暴露,为保护密钥安全,建议将密钥设置在环境变量中。# 可参考 /document/product/1278/85305},"sourceIp": "10.0.2.14","stage": "release"},"headers": {"Accept-Language": "en-US,en,cn","Accept": "text/html,application/xml,application/json","Host": "service-3ei3tii4-251000691.ap-guangzhou.apigateway.myqloud.com","User-Agent": "User Agent String"},"body": "{\\"test\\":\\"body\\"}","pathParameters": {"path": "value"},"queryStringParameters": {"foo": "bar"},"headerParameters":{"Refer": "10.0.2.14"},"stageVariables": {"stage": "release"},"path": "/test/value","queryString": {"foo" : "bar","bob" : "alice"},"httpMethod": "POST"}
Timer 触发器的事件消息结构
在指定时间触发调用云函数时,会将类似以下的 JSON 格式事件数据发送给绑定的 SCF 云函数。
{"Type":"Timer","TriggerName":"EveryDay","Time":"2019-02-21T11:49:00Z","Message":"user define msg body"}
COS 触发器的事件消息结构
"Records": [{"cos": {"cosSchemaVersion": "1.0","cosObject": {"url": "http://testpic-1253970026.cos.ap-chengdu.myqcloud.com/testfile","meta": {"x-cos-request-id": "NWMxOWY4MGFfMjViMjU4NjRfMTUy********ZjM=","Content-Type": ""},"vid": "","key": "/1253970026/testpic/testfile","size": 1029},"cosBucket": {"region": "cd","name": "testpic","appid": "1253970026"},"cosNotificationId": "unkown"},"event": {"eventName": "cos:ObjectCreated:*","eventVersion": "1.0","eventTime": 1545205770,"eventSource": "qcs::cos","requestParameters": {"requestSourceIP": "192.168.15.101","requestHeaders": {"Authorization": "q-sign-algorithm=sha1&q-ak=AKIDQm6iUh2NJ6jL41tVUis9KpY5Rgv49zyC&q-sign-time=1545205709;1545215769&q-key-time=1545205709;1545215769&q-header-list=host;x-cos-storage-class&q-url-param-list=&q-signature=098ac7dfe9cf21116f946c4b4c29001c2b449b14"}},"eventQueue": "qcs:0:lambda:cd:appid/1253970026:default.printevent.$LATEST","reservedInfo": "","reqid": 179398952}}]}
CKafka 触发器的事件消息结构
在指定的 CKafka Topic 接收到消息时,云函数后台的消费者模块会消费 CKafka Topic 中的消息,并将消息组装为类似以下的 JSON 格式事件,触发绑定的函数并将数据内容作为入参传递给函数。详情见?CKafka 触发器。
{"Records": [{"Ckafka": {"topic": "test-topic","partition":1,"offset":36,"msgKey": "None","msgBody": "Hello from Ckafka!"}},{"Ckafka": {"topic": "test-topic","partition":1,"offset":37,"msgKey": "None","msgBody": "Hello from Ckafka again!"}}]}
CMQ Topic 触发器的事件消息结构
{"Records": [{"CMQ": {"type": "topic","topicOwner":"120xxxxx","topicName": "testtopic","subscriptionName":"xxxxxx","publishTime": "1970-01-01T00:00:00.000Z","msgId": "123345346","requestId":"123345346","msgBody": "Hello from CMQ!","msgTag": "tag1,tag2"}}]}
CLS 触发器的事件消息结构
在指定的 CLS 触发器接收到消息时,CLS 的后台消费者模块会消费消息,并将消息组装异步调用您的函数。为保证单次触发传递数据的效率,数据字段的值是 Base64 编码的 ZIP 文档。详情见?CLS 触发器。
{"clslogs": {"data": "ewogICAgIm1lc3NhZ2VUeXBlIjogIkRBVEFfTUVTU0FHRSIsCiAgICAib3duZXIiOiAiMTIzNDU2Nzg5MDEyIiwKICAgICJsb2dHcm91cCI6I..."}}
在解码和解压缩后,日志数据类似以下 JSON 体,以 CLS Logs 消息数据(已解码)为例:
{"topic_id": "xxxx-xx-xx-xx-yyyyyyyy","topic_name": "testname","records": [{"timestamp": "1605578090000000","content": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}, {"timestamp": "1605578090000003","content": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}]}
MPS 触发器的事件消息结构
{"EventType":"WorkflowTask","WorkflowTaskEvent":{"TaskId":"245****654-WorkflowTask-f46dac7fe2436c47******d71946986t0","Status":"FINISH","ErrCode":0,"Message":"","InputInfo":{"Type":"COS","CosInputInfo":{"Bucket":"macgzptest-125****654","Region":"ap-guangzhou","Object":"/dianping2.mp4"}},"MetaData":{"AudioDuration":11.261677742004395,"AudioStreamSet":[{"Bitrate":127771,"Codec":"aac","SamplingRate":44100}],"Bitrate":2681468,"Container":"mov,mp4,m4a,3gp,3g2,mj2","Duration":11.261677742004395,"Height":720,"Rotate":90,"Size":3539987,"VideoDuration":10.510889053344727,"VideoStreamSet":[{"Bitrate":2553697,"Codec":"h264","Fps":29,"Height":720,"Width":1280}],"Width":1280},"MediaProcessResultSet":[{"Type":"Transcode","TranscodeTask":{"Status":"SUCCESS","ErrCode":0,"Message":"SUCCESS","Input":{"Definition":10,"WatermarkSet":[{"Definition":515247,"TextContent":"","SvgContent":""}],"OutputStorage":{"Type":"COS","CosOutputStorage":{"Bucket":"gztest-125****654","Region":"ap-guangzhou"}},"OutputObjectPath":"/dasda/dianping2_transcode_10","SegmentObjectName":"/dasda/dianping2_transcode_10_{number}","ObjectNumberFormat":{"InitialValue":0,"Increment":1,"MinLength":1,"PlaceHolder":"0"}},"Output":{"OutputStorage":{"Type":"COS","CosOutputStorage":{"Bucket":"gztest-125****654","Region":"ap-guangzhou"}},"Path":"/dasda/dianping2_transcode_10.mp4","Definition":10,"Bitrate":293022,"Height":320,"Width":180,"Size":401637,"Duration":11.26200008392334,"Container":"mov,mp4,m4a,3gp,3g2,mj2","Md5":"31dcf904c03d0cd78346a12c25c0acc9","VideoStreamSet":[{"Bitrate":244608,"Codec":"h264","Fps":24,"Height":320,"Width":180}],"AudioStreamSet":[{"Bitrate":48414,"Codec":"aac","SamplingRate":44100}]}},"AnimatedGraphicTask":null,"SnapshotByTimeOffsetTask":null,"SampleSnapshotTask":null,"ImageSpriteTask":null},{"Type":"AnimatedGraphics","TranscodeTask":null,"AnimatedGraphicTask":{"Status":"FAIL","ErrCode":30010,"Message":"TencentVodPlatErr Or Unkown","Input":{"Definition":20000,"StartTimeOffset":0,"EndTimeOffset":600,"OutputStorage":{"Type":"COS","CosOutputStorage":{"Bucket":"gztest-125****654","Region":"ap-guangzhou"}},"OutputObjectPath":"/dasda/dianping2_animatedGraphic_20000"},"Output":null},"SnapshotByTimeOffsetTask":null,"SampleSnapshotTask":null,"ImageSpriteTask":null},{"Type":"SnapshotByTimeOffset","TranscodeTask":null,"AnimatedGraphicTask":null,"SnapshotByTimeOffsetTask":{"Status":"SUCCESS","ErrCode":0,"Message":"SUCCESS","Input":{"Definition":10,"TimeOffsetSet":[?],"WatermarkSet":[{"Definition":515247,"TextContent":"","SvgContent":""}],"OutputStorage":{"Type":"COS","CosOutputStorage":{"Bucket":"gztest-125****654","Region":"ap-guangzhou"}},"OutputObjectPath":"/dasda/dianping2_snapshotByOffset_10_{number}","ObjectNumberFormat":{"InitialValue":0,"Increment":1,"MinLength":1,"PlaceHolder":"0"}},"Output":{"Storage":{"Type":"COS","CosOutputStorage":{"Bucket":"gztest-125****654","Region":"ap-guangzhou"}},"Definition":0,"PicInfoSet":[{"TimeOffset":0,"Path":"/dasda/dianping2_snapshotByOffset_10_0.jpg","WaterMarkDefinition":[515247]}]}},"SampleSnapshotTask":null,"ImageSpriteTask":null},{"Type":"ImageSprites","TranscodeTask":null,"AnimatedGraphicTask":null,"SnapshotByTimeOffsetTask":null,"SampleSnapshotTask":null,"ImageSpriteTask":{"Status":"SUCCESS","ErrCode":0,"Message":"SUCCESS","Input":{"Definition":10,"OutputStorage":{"Type":"COS","CosOutputStorage":{"Bucket":"gztest-125****654","Region":"ap-guangzhou"}},"OutputObjectPath":"/dasda/dianping2_imageSprite_10_{number}","WebVttObjectName":"/dasda/dianping2_imageSprite_10","ObjectNumberFormat":{"InitialValue":0,"Increment":1,"MinLength":1,"PlaceHolder":"0"}},"Output":{"Storage":{"Type":"COS","CosOutputStorage":{"Bucket":"gztest-125****654","Region":"ap-guangzhou"}},"Definition":10,"Height":80,"Width":142,"TotalCount":2,"ImagePathSet":["/dasda/imageSprite/dianping2_imageSprite_10_0.jpg"],"WebVttPath":"/dasda/imageSprite/dianping2_imageSprite_10.vtt"}}}]}}
CLB 触发器的事件消息结构
{????"headers":?{?????"Content-type":?"application/json",??????"Host":?"test.clb-scf.com",??????"User-Agent":?"Chrome",???????"X-Stgw-Time":?"1591692977.774",??????"X-Client-Proto":?"http",??????"X-Forwarded-Proto":?"http",??????"X-Client-Proto-Ver":?"HTTP/1.1",??? "X-Real-IP":?"9.43.175.219",????"X-Forwarded-For":?"9.43.175.xx"???????"X-Vip":?"121.23.21.xx",??????"X-Vport":?"xx",??????"X-Uri":?"/scf_location",??????"X-Method":?"POST"????????"X-Real-Port":?"44347",????},????"payload":?{??????"key1":?"123",??????"key2":?"abc"????},“isBase64Encoded”: “false”}??
通过事件总线触发器传递的事件结构
{"specversion": "0","id": "13a3f42d-7258-4ada-da6d-023a33******","type": "connector:tdmq","source": "tdmq.cloud.tencent","subjuect": "qcs::tdmq:$region:$account:topicName/$topicSets.clusterId/$topicSets.environmentId/$topicSets.topicName/$topicSets.subscriptionName","time": "1615430559146","region": "ap-guangzhou","datacontenttype": "application/json;charset=utf-8","data": {"topic": "persistent://appid/namespace/topic-1","tags": "testtopic","TopicType": "0","subscriptionName": "xxxxxx","toTimestamp": "1603352765001","partitions": "0","msgId": "123345346","msgBody": "Hello from TDMQ!"}
?