更新时间:2024-11-04 GMT+08:00
基于Serverless版事件流实现RocketMQ推送事件至函数工作流服务
本文介绍如何通过事件网格服务的事件流功能将RocketMQ产生的事件推送至函数工作流服务。
当前事件网格服务仅支持华北-北京四、华北-乌兰察布一、华东-上海一、华东-上海二、华南-广州、亚太-新加坡、拉美-墨西哥城二。
前提条件
进行本实践操作需要提前完成的事项:
- 已开通事件网格服务并授权。
- 已创建虚拟私有云和子网。
- 已创建安全组。
- 已购买分布式消息服务RocketMQ实例。
- 已创建函数,函数以Python3.9运行时为例介绍。
创建Serverless版事件流
- 登录事件网格控制台,左侧导航栏选择“事件流 > Serverless版事件流”,右上角单击“创建 Serverless版事件流”。
- 左上角单击,配置事件流名称和描述,完成后单击“确定”。
- 配置RocketMQ事件源。
- 配置事件规则,本案例使用默认配置,如需其他规则请根据实际情况配置。
- 配置函数计算事件目标。
其中“规则配置”中的“类型”参数选择“变量”,“参数”及“模板”示例如下:
参数:
{ "message": "$.data.context" }
模板:
The message is ${message}.
图1 配置变量
- 事件流配置完成后,单击右上角“保存”,并在事件流列表中的右侧“操作”列单击“启用”。
- 左上角单击,搜索“函数工作流”单击进入函数工作流控制台,左侧导航栏选择“函数 > 函数列表”,单击创建好的函数名称进入详情页。
- 选择“代码”页签,在编辑区增加如下代码,然后单击“部署”刷新代码。
print("body is:", json.dumps(event))
图2 编辑代码
RocketMQ发布事件至函数工作流
- 左上角单击,搜索“rocketmq”单击进入分布式消息服务RocketMQ控制台,左侧导航栏选择“RocketMQ专享版”,单击已创建的实例名称进入详情页。
- 左侧导航栏选择“Topic 管理”,单击已创建topic的“生产消息”,在“消息内容”框中输入内容:{"message":"aaa"},其他参数保持默认,单击“确定”。
图3 生产消息
- 返回函数工作流控制台,左侧导航栏选择“函数 > 函数列表”,单击函数名称进入详情页。
- 选择“监控 > 日志 > 请求日志”,即可查看从RocketMQ实例推送过来的事件内容。
图4 查看日志