mns 推出重磅功能,支持阿里云各大服务通过mns实现事件通知(回调)。用户可以通过在mns上创建事件通知的规则,来关注其他阿里云产品指定资源上产生的事件,并且由mns以消息的方式主动推送到指定的接收端。
事件通知按区域提供服务
事件通知为异步通知,不会影响用户使用其他云产品的体验
事件通知消息在有效时间内不会丢失,当用户接收消息失败时,会按照指定的重试策略重试
事件通知消息的接收端目前支持httpserver和queue(可以将消息转移到queue中,由用户来主动消费)

事件通知规则创建完,约10分钟后生效
在没有其他规则的情况下,默认规则匹配所有资源上的所有事件
在有其他规则并且也有默认规则的情况下,不匹配其他规则的事件会匹配默认规则
事件通知规则只能创建和删除,目前不支持更新
如果您授权其他人可以对您的资源(bucket)进行某些操作,而您又希望关注这些操作的话,您就可以创建对应的规则,使得这些操作发生时,能够主动通知到您。
如果您需要对操作进行统计的话,也可以通过事件通知的方式进行数据分析,查看一段时间内某个操作发生的次数,据此来分析您的业务最近有什么样的发展趋势。并且,您也可以将这些事件通知的消息继续导入其他服务(比如:emr,进一步进行您自定义的分析)
您也可以通过事件通知监控您的资源上发生的某些操作的qps等等指标。
示例:
某个用户创建了一个bucket:event-notification-test,然后他关心有哪些object被上传到这个bucket中了,他想把事件通知消息推送到queue中,然后再慢慢消费,于是他就可以创建下面这样的事件通知规则:
规则名称:event-notification-test-rule
资源描述:event-notification-test/
事件类型:putobject、postobject
接收终端:event-notification-test-queue
五步玩转事件通知:
step1. 创建bucket
step2. 创建消息接收的queue
step3. 创建事件通知规则
step4. 上传object
step5. 查看queue中是否接收到消息
依然保持在mns控制台,选择左边标签页:“事件通知”,点击“创建规则”,再依次输入规则名称:“event-notification-test-rule”、添加资源(点击“添加”按钮)、选择事件类型(可以多选)以及添加接收终端,如下图:
其中资源描述稍微复杂一些,可以参考资源描述后面的问号“?”,其中给了tips,摘录如下(特别注意:资源描述不能有交集):
接收端目前支持httpserver以及queue两种,此处我们选择step2.中创建的queue。
创建一条新规则后,mns会自动创建一个topic,并且以指定的endpoint创建订阅,可以从mns控制台发布订阅的标签页进行查看,并且可以自由管理这些topic与subscription(比如创建新的订阅)。
新规则创建完成后,需要约10分钟的时间才能生效。