消息服务MNS的主题(Topic)作为事件源通过事件总线EventBridge函数计算集成后(即主题的订阅者是函数),通过消息服务MNS主题触发器(以下简称MNS主题触发器)能够触发关联函数执行,通过函数可以对发布到消息服务MNS主题中的消息进行自定义处理。

背景介绍

消息服务MNS是一种高效、可靠、安全、便捷、可弹性扩展的分布式消息服务。帮助应用开发者在其应用的分布式组件上自由地传递数据、通知消息,构建松耦合系统。在消息服务MNS中,主题是发布消息的目的地。发布者可以通过PublishMessage接口向主题发布消息,主题的订阅者接收该消息。接口信息,请参见PublishMessage

配置一个MNS主题触发器,相当于将函数注册为这个MNS主题的订阅者,当发布者向MNS主题发布消息的时候,就会把消息内容通知给函数,即触发函数执行,同时消息内容作为函数入口的event参数。具体信息,请参见函数入参

消息服务MNS与函数计算集成有以下优势:
  • 可以实现对消息进行一些高阶处理再发送邮件或者短信。
  • HTTP Endpoint不需要有自建的服务。
  • 支持丰富的自定义处理。例如,把消息发送给slack,或者对于特定的消息进行持久化存储。
compare

注意事项

  • 强烈建议消息服务MNS创建的主题和函数计算的函数在相同的地域。

    MNS主题触发器支持主题和函数在不同的地域,但是在不同的地域会增加网络延时,尤其当函数所在的地域和主题所在的地域分别是国内和国外时。

  • 避免出现循环调用的情况。

    编写函数时,注意不要出现以下逻辑:Topic A触发函数B,函数B又发布新的消息到Topic A,从而造成函数无限循环调用。