文档首页 > > 用户指南> 入门指南> 使用DIS触发器

使用DIS触发器

分享
更新时间: 2019/08/22 20:57

关于DIS触发器事件源具体介绍请参见支持的事件源

前提条件

进行操作之前,需要做好以下准备。

设置函数委托

创建DIS触发器时,需要设置函数委托,委托权限需要包括DIS,委托的创建请参考创建委托

由于创建HelloWorld函数的时候没有设置委托,所以需要先修改函数委托。

  1. 登录FunctionGraph控制台,进入“函数”界面。
  2. 在“函数”界面,选择“函数列表”,单击HelloWorld函数名称,进入HelloWorld函数详情界面。
  3. 在HelloWorld函数详情页,单击“配置”,进入“配置”页签。
  4. 在“配置”页签,修改函数委托,将委托修改为创建委托创建的serverless-trust委托。
  5. 单击“保存”,完成委托修改。

创建DIS触发器

  1. 登录FunctionGraph控制台,进入“函数”界面。
  2. 在“函数”界面,选择“函数列表”,单击HelloWorld函数名称,进入HelloWorld函数详情界面。
  3. 在HelloWorld函数详情页,单击“触发器”页签。
  4. 在“触发器”页签,单击“创建触发器”,如图1所示,弹出“创建触发器”界面。

    图1 创建DIS触发器

  5. 在“创建触发器”界面,触发器类型选择“数据接入服务 (DIS)”,填写触发器信息,如表1所示,带*参数为必填项。

    表1 DIS触发器信息表

    字段

    填写说明

    *通道名称

    选择已创建的DIS通道。

    本例选择创建的dis-function通道。

    *起始位置

    选择流中开始读取数据的位置。

    • TRIM_HORIZON:从最早被存储至分区的有效记录开始读取。
    • LATEST:从分区中的最新记录开始读取,此设置可以保证你总是读到分区中最新记录。

    选择“LATEST”,从DIS数据通道中获取最新数据。

    拉取周期(秒)

    设置拉取流数据的周期,拉取周期设置10ms~60s秒的范围内。

    输入10。

    串行处理数据

    如果开启该选项,取一次数据处理完之后才会取下一次数据;否则只要拉取周期到了就会取数据进行处理。

    选择关闭。

    说明:
    • 本例触发器的功能是:每隔10s,触发器会从dis-function数据通道中获取最新的100条数据,如果数据总数不足100,则全部获取。
    • 拉取周期可以选单位,秒和毫秒,范围是10ms~60s。接口上"polling_unit"的取值为"s"或"ms",如果不填则默认为"s",当"polling_unit"取值为"ms"时,"polling_interval"取值范围为10~60000,当"polling_unit"取值为"s"时,"polling_interval"取值范围1~60。

  6. 单击“确定”,完成触发器创建,如图2所示。

    图2 DIS触发器

配置dis事件触发函数

  1. 登录FunctionGraph控制台,进入“函数”界面。
  2. 在“函数”界面,选择“函数列表”,单击HelloWorld函数名称,进入函数详情页。
  3. 在HelloWorld函数详情页,选择函数版本,单击“请选择测试事件>配置测试事件”,如图3所示,弹出“配置测试事件”页。

    图3 配置DIS测试事件

  4. 在“配置测试事件”界面填写如表2所示测试信息后单击“保存”,带*参数为必填项。

    表2 测试信息

    参数

    说明

    配置测试事件

    可创建新的测试事件也可编辑已有的测试事件。

    选择默认值:“创建新的测试事件”。

    事件模板

    选择"dis-event-template"模板,使用系统内置dis事件模板。

    *事件名称

    事件名称必须仅包含字母和数字,且最大长度为 25 个字符。

    输入“dis-test”。

    测试事件

    自动加载系统内置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"
    }

  5. 单击“测试”,可以得到函数运行结果,函数会返回输入DIS数据。如图4所示。

    图4 DIS触发器测试结果

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区