消息服务MNS的队列(Queue)作为事件源通过事件总线EventBridge与函数计算集成后,通过消息服务MNS队列触发器(以下简称MNS队列触发器)能够触发关联函数执行,通过函数可以对发布到消息服务MNS队列中的消息进行自定义处理。本文介绍如何在函数计算控制台创建MNS队列触发器、编写函数和测试函数。
功能简介
您在函数计算的控制台提交触发器创建请求之后,函数计算根据触发器的配置信息,将自动创建如下与事件总线EventBridge相关的资源:
- 事件总线MNS-函数名称-触发器名称
- 事件源MNS-函数名称-触发器名称
- 事件规则服务名称-函数名称-触发器名称
说明 自动创建的事件总线EventBridge相关资源的名称必须符合名称取值限制和要求,否则触发器无法创建成功。具体信息,请参见使用限制。
注意事项
- 事件总线EventBridge限制同一地域下自定义事件总线不能超过10个,每个自定义总线上创建的事件规则总数也不能超过10个。超过以上限制的数量后,将无法再创建EventBridge触发器。
- 创建的消息服务MNS的队列和函数计算的函数必须在相同的地域。
- MNS队列触发器暂时不支持通过Serverless Devs工具或SDK创建。
前提条件
- 事件总线EventBridge
- 函数计算
- 消息服务MNS
步骤一:创建触发器
步骤二:编写函数
完成创建MNS队列触发器之后,您可以编写函数代码。
在函数详情页面,单击函数代码页签,在代码编辑器中编写代码。
代码示例如下。
'use strict';
/*
To enable the initializer feature
please implement the initializer function as below:
exports.initializer = (context, callback) => {
console.log('initializing');
callback(null, '');
};
*/
exports.handler = (event, context, callback) => {
console.log("event: %s", event);
handle_event(event);
callback(null, 'return result');
}
步骤三:测试函数
完成函数编写后,您需要调试函数以验证代码的正确性。在实际操作过程中,当消息服务MNS自定义事件源产生的事件通过事件总线EventBridge投递到函数计算时,会自动触发函数执行。
消息服务MNS事件源会以event的形式作为输入参数传递给函数,您可以手动将event传给函数模拟触发事件,测试函数代码是否正确。
验证结果
在函数代码页签,您可以看到执行成功的指示。

更多信息
如需对创建的触发器进行修改或删除,具体操作,请参见触发器管理。