文档首页/ 事件网格 EG/ 最佳实践/ 基于事件流实现RocketMQ推送事件至函数工作流服务
更新时间:2024-09-29 GMT+08:00
分享

基于事件流实现RocketMQ推送事件至函数工作流服务

本文介绍如何通过事件网格服务的事件流功能将RocketMQ产生的事件推送至函数工作流服务。

当前事件网格服务仅支持华北-北京四、华北-乌兰察布一、华东-上海一、华东-上海二、华南-广州、亚太-新加坡、拉美-墨西哥城二。

前提条件

进行本实践操作需要提前完成的事项:

创建Serverless版事件流

  1. 登录事件网格控制台,左侧导航栏选择“事件流 > Serverless版事件流”,右上角单击“创建 Serverless版事件流”。
  2. 左上角单击,配置事件流名称和描述,完成后单击“确定”。
  3. 配置RocketMQ事件源
  4. 配置事件规则,本案例使用默认配置,如需其他规则请根据实际情况配置。
  5. 配置函数计算事件目标

    其中“规则配置”中的“类型”参数选择“变量”,“参数”及“模板”示例如下:

    参数:

    {
      "message": "$.data.context"
    }

    模板:

    The message is ${message}.
    图1 配置变量

  6. 事件流配置完成后,单击右上角“保存”,并在事件流列表中的右侧“操作”列单击“启用”。
  7. 左上角单击,搜索“函数工作流”单击进入函数工作流控制台,左侧导航栏选择“函数 > 函数列表”,单击创建好的函数名称进入详情页。
  8. 选择“代码”页签,在编辑区增加如下代码,然后单击“部署”刷新代码。

    print("body is:", json.dumps(event))
    图2 编辑代码

RocketMQ发布事件至函数工作流

  1. 左上角单击,搜索“rocketmq”单击进入分布式消息服务RocketMQ控制台,左侧导航栏选择“RocketMQ专享版”,单击已创建的实例名称进入详情页。
  2. 左侧导航栏选择“Topic 管理”,单击已创建topic的“生产消息”,在“消息内容”框中输入内容:{"message":"aaa"},其他参数保持默认,单击“确定”。

    图3 生产消息

  3. 返回函数工作流控制台,左侧导航栏选择“函数 > 函数列表”,单击函数名称进入详情页。
  4. 选择“监控 > 日志 > 请求日志”,即可查看从RocketMQ实例推送过来的事件内容。

    图4 查看日志

相关文档