更新时间:2022-04-29 GMT+08:00
分享

使用DIS触发器

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

前提条件

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

  • 已经创建函数,创建过程请参考创建函数
  • 已经创建接入通道,此处以dis-function为例,创建过程请参考创建DIS通道

设置函数委托

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

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

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

创建DIS触发器

  1. 登录FunctionGraph控制台,进入“函数”界面。
  2. 在“函数”界面,选择“函数列表”,单击HelloWorld函数名称,进入HelloWorld函数详情界面。
  3. 在HelloWorld函数详情页,单击“触发器”页签。
  4. 在“触发器”页签,单击“创建触发器”,弹出“创建触发器”对话框。
  5. 设置以下信息。

    • 触发器类型:数据接入服务 (DIS)。
    • 通道名称:选择已创建的DIS通道,例如:dis-function。
    • 最大字节数:每次触发时获取记录的最大字节数。只有当分区中单条记录小于该值,才能被获取。设置范围:1KB-4MB。
    • 起始位置:选择流中开始读取数据的位置。
      • TRIM_HORIZON:从最早被存储至分区的有效记录开始读取。
      • latest:从分区中的最新记录开始读取,此设置可以保证你总是读到分区中最新记录。
    • 拉取周期:设置拉取流数据的周期。
    • 串行处理数据:如果开启该选项,取一次数据处理完之后才会取下一次数据;否则只要拉取周期到了就会取数据进行处理。

  6. 单击“确定”,完成DIS触发器的创建。

配置DIS事件触发函数

  1. 登录FunctionGraph控制台,进入“函数”界面。
  2. 在“函数”界面,选择“函数列表”,单击HelloWorld函数名称,进入函数详情页。
  3. 在HelloWorld函数详情页,选择函数版本,单击“请选择测试事件 > 配置测试事件”,弹出“配置测试事件”对话框。
  4. 填写如表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"
    }

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

    图1 DIS触发器测试结果

分享:

    相关文档

    相关产品

close