注意:
触发器传递的入参事件结构已有部分定义,可直接使用。您可以通过 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" # 硬编码密钥到代码中有可能随代码泄露而暴露,为保护密钥安全,建议将密钥设置在环境变量中。# 可参考 https://cloud.tencent.com/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=******"}},"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!"}}]}
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!"}