消息服务MNS的主题(Topic)作为事件源通过事件总线EventBridge与函数计算集成后(即主题的订阅者是函数),通过消息服务MNS主题触发器(以下简称MNS主题触发器)能够触发关联函数执行,通过函数可以对发布到消息服务MNS主题中的消息进行自定义处理。
背景介绍
消息服务MNS是一种高效、可靠、安全、便捷、可弹性扩展的分布式消息服务。帮助应用开发者在其应用的分布式组件上自由地传递数据、通知消息,构建松耦合系统。在消息服务MNS中,主题是发布消息的目的地。发布者可以通过PublishMessage接口向主题发布消息,主题的订阅者接收该消息。接口信息,请参见PublishMessage。
配置一个MNS主题触发器,相当于将函数注册为这个MNS主题的订阅者,当发布者向MNS主题发布消息的时候,就会把消息内容通知给函数,即触发函数执行,同时消息内容作为函数入口的event参数。具体信息,请参见函数入参。
消息服务MNS与函数计算集成有以下优势:

- 可以实现对消息进行一些高阶处理再发送邮件或者短信。
- HTTP Endpoint不需要有自建的服务。
- 支持丰富的自定义处理。例如,把消息发送给slack,或者对于特定的消息进行持久化存储。

注意事项
- 强烈建议消息服务MNS创建的主题和函数计算的函数部署在相同的地域。
MNS主题触发器支持主题和函数在不同的地域,但是在不同的地域会增加网络延时。
- 避免出现循环调用的情况。
编写函数时,注意不要出现以下逻辑:Topic A触发函数B,函数B又发布新的消息到Topic A,从而造成函数无限循环调用。