使用DIS触发器
关于DIS触发器事件源具体介绍请参见支持的事件源。
设置函数委托
创建DIS触发器时,需要设置函数委托,委托权限需要包括DIS,委托的创建请参考创建委托。
由于创建HelloWorld函数的时候没有设置委托,所以需要先修改函数委托。
- 登录FunctionGraph控制台,进入“函数”界面。
- 在“函数”界面,选择“函数列表”,单击HelloWorld函数名称,进入HelloWorld函数详情界面。
- 在HelloWorld函数详情页,单击“配置”,进入“配置”页签。
- 在“配置”页签,修改函数委托,将委托修改为创建委托创建的serverless-trust委托。
- 单击“保存”,完成委托修改。
创建DIS触发器
- 登录FunctionGraph控制台,进入“函数”界面。
- 在“函数”界面,选择“函数列表”,单击HelloWorld函数名称,进入HelloWorld函数详情界面。
- 在HelloWorld函数详情页,单击“触发器”页签。
- 在“触发器”页签,单击“创建触发器”,弹出“创建触发器”对话框。
- 设置以下信息。
- 触发器类型:数据接入服务 (DIS)。
- 通道名称:选择已创建的DIS通道,例如:dis-function。
- 最大字节数:每次触发时获取记录的最大字节数。只有当分区中单条记录小于该值,才能被获取。设置范围:1KB-4MB。
- 起始位置:选择流中开始读取数据的位置。
- TRIM_HORIZON:从最早被存储至分区的有效记录开始读取。
- latest:从分区中的最新记录开始读取,此设置可以保证你总是读到分区中最新记录。
- 拉取周期:设置拉取流数据的周期。
- 串行处理数据:如果开启该选项,取一次数据处理完之后才会取下一次数据;否则只要拉取周期到了就会取数据进行处理。
- 单击“确定”,完成DIS触发器的创建。
配置DIS事件触发函数
- 登录FunctionGraph控制台,进入“函数”界面。
- 在“函数”界面,选择“函数列表”,单击HelloWorld函数名称,进入函数详情页。
- 在HelloWorld函数详情页,选择函数版本,单击“请选择测试事件 > 配置测试事件”,弹出“配置测试事件”对话框。
- 填写如表1所示测试信息后,单击“保存”。
表1 测试信息 参数
说明
配置测试事件
可创建新的测试事件也可编辑已有的测试事件。
选择默认值:“创建新的测试事件”。
事件模板
选择"dis-event-template"模板,使用系统内置dis事件模板。
事件名称
事件名称必须以大写或小写字母开头,支持字母(大写或小写),数字和下划线“_”(或中划线“-”),并以字母或数字结尾,长度为1-25个字符。例如输入dis-123test。
测试事件
自动加载系统内置dis事件模板,本例不做修改,如下所示。
测试事件模板示例如下:
{ "ShardID": "shardId-0000000000", "Message": { "next_partition_cursor": "eyJnZXRJdGVyYXRvclBhcmFtIjp7InN0cmVhbS1uYW1lIjoiZGlzLXN3dGVzdCIsInBhcnRpdGlvbi1pZCI6InNoYXJkSWQtMDAwMDAwMDAwMCIsImN1cnNvci10eXBlIjoiVFJJTV9IT1JJWk9OIiwic3RhcnRpbmctc2VxdWVuY2UtbnVtYmVyIjoiNCJ9LCJnZW5lcmF0ZVRpbWVzdGFtcCI6MTUwOTYwNjM5MjE5MX0", "records": [ { "partition_key": "shardId_0000000000", "data": "d2VsY29tZQ==", "sequence_number": "0" }, { "partition_key": "shardId_0000000000", "data": "dXNpbmc=", "sequence_number": "1" }, { "partition_key": "shardId_0000000000", "data": "RnVuY3Rpb25TdGFnZQ==", "sequence_number": "2" }, { "partition_key": "shardId_0000000000", "data": "c2VydmljZQ==", "sequence_number": "3" } ], "millis_behind_latest": "" }, "Tag": "latest", "StreamName": "dis-swtest" }
- 单击“测试”,可以得到函数运行结果,函数会返回输入DIS数据。如图1所示。
