文档首页/ 事件网格 EG/ 快速入门/ 自定义事件发送流程
更新时间:2023-04-28 GMT+08:00
分享

自定义事件发送流程

本章节介绍自定义事件发送的整个流程。

将自定义事件源产生的自定义事件发送到事件网格,事件规则对自定义事件进行过滤和转换,通过转换后的事件触发事件目标(即函数工作流服务中的函数)。

前提条件

步骤一:创建自定义通道

  1. 登录事件网格控制台。
  2. 在左侧导航栏选择“事件通道”,进入“事件通道”页面。
  3. 单击“创建事件通道”,弹出“创建事件通道”对话框。
  4. 在“通道名称”中输入“channel”,单击“确定”,完成自定义事件通道的创建。

    通道创建成功后,在“自定义事件通道”区域查看创建的自定义事件通道,并记录事件通道ID。

    图1 事件通道ID

步骤二:创建自定义事件源

  1. 登录事件网格控制台。
  2. 在左侧导航栏选择“事件源”,进入“事件源”页面。
  3. 单击“自定义事件源”,弹出“创建自定义事件源”对话框。
  4. 参考图2,填写自定义事件源的配置信息。

    • 配置类型:选择“选择”
    • 通道:选择步骤一创建的“channel”通道
    • 事件源名称:输入“egsdk-source”
    图2 创建自定义事件源

  5. 单击“确定”,完成自定义事件源的创建。

    创建成功后,在“自定义事件源”页签,查看创建的事件源。

步骤三:创建云服务事件目标(创建函数)

  1. 登录函数工作流控制台。
  2. 在左侧导航栏选择“函数 > 函数列表”,进入函数列表页面。
  3. 单击“创建函数”,进入“创建空白函数”页面。
  4. 参考图3,设置函数参数。关于函数参数的详细介绍,请参考创建函数

    • 函数类型:选择“事件函数”
    • 区域:选择业务区域
    • 函数名称:输入“test”
    • 委托名称:选择“未使用任何委托”
    • 运行时语言:选择“Python 2.7”
    图3 创建函数

  5. 单击“创建函数”,完成函数的创建。
  6. 在函数详情页的“代码”页签中,输入如下代码,单击“部署”。

    # -*- coding:utf-8 -*-
    import json
    def handler (event, context):
        print(json.dumps(event))
        return {
            "statusCode": 200,
            "isBase64Encoded": False,
            "body": json.dumps(event),
            "headers": {
                "Content-Type": "application/json"
            }
        }

步骤四:创建事件订阅

事件订阅将事件源、通道和事件目标绑定在一起,通过事件规则将事件源发出的事件路由到事件目标。

  1. 登录事件网格控制台。
  2. 在左侧导航栏选择“事件订阅”,进入“事件订阅”页面。
  3. 单击“创建事件订阅”,进入订阅详情页。
  4. 单击订阅名称旁的,弹出“修改订阅”弹窗。
  5. 在“订阅名称”中输入“CustomEvent”,单击“确定”,回到订阅详情页。
  6. 配置事件源。

    1. 单击“事件源”,参考图4,设置事件源参数。
      • 选择提供方:选择“自定义”
      • 通道配置 > 配置类型:选择“选择”
      • 通道配置 > 通道:选择步骤一创建的“channel”通道
      • 事件源配置 > 配置类型:选择“选择”
      • 事件源配置 > 事件源:选择步骤二创建的“egsdk-source”
      • 过滤规则:保存默认,并记录values值,如图4所示的“egsdk-source”。
      图4 配置事件源参数
    2. 单击“确定”,完成事件源的配置。

  7. 配置事件目标。

    1. 单击“事件目标”,参考图5,设置事件目标参数。
      • 选择提供方:选择“华为云”
      • 事件目标:选择“FunctionGraph(函数计算)”
      • 函数:选择步骤三中创建的“test”函数
      • 版本:选择“latest”
      • 类型:选择“透传”
      图5 配置事件目标参数
    2. 单击“确定”,完成事件目标的配置。

  8. 单击“保存”,完成事件订阅的配置。

步骤五:发送自定义事件

  1. 配置自定义事件,具体请参考CloudEvents SDK

    修改发布事件示例代码中如下参数:

    • NAME:IAM用户名。
    • PASSWORD:IAM 用户密码。
    • DOMAIN_NAME:IAM domain用户名。
    • IAM_ENDPOINT:IAM的终端节点,您可以从地区和终端节点中查询服务的终端节点。
    • PROJECT_ID:即项目ID,参考API凭证,获取项目ID。
    • CHANNEL_ID:修改为步骤一中记录的通道ID。
    • ENDPOINT:事件网格访问端点,如“华北-北京四”区域,公网访问端点值为“events.cn-north-4.myhuaweicloud.com”。
    • SOURCE:即事件源名称,修改为步骤四中配置事件源时记录的“Filter”中“values”值。

    • TIME:修改事件产生的时间。
    • DATA:根据实际情况修改,事件内容遵循CloudEvents 1.0规范。

  2. 运行发布事件的main函数。

步骤六:查看结果

  1. 登录函数工作流控制台。
  2. 在左侧导航栏选择“函数 > 函数列表”,进入函数列表页面。
  3. 单击函数名称“test”,进入函数详情页。
  4. 在“监控”页签,查看调用次数、运行时间等。

    图6 监控视图

相关文档