MNS支持OSS事件通知啦!!!

事件通知概述,请参考介绍

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中是否接收到消息

Step1. 创建Bucket

  • 登录阿里云官网,进入OSS控制台,点击“新建Bucket”,再依次填入BucketName:“event-notification-test”以及选择所属地域:“华南1”(此处方便测试可以设置读写权限为公共读写),如下:

Step2. 创建消息接收的Queue

  • 进入MNS控制台,选择“华南1”区域,点击“创建队列”,再依次输入队列名称:“event-notification-test-queue”,选择地域:“华南1”,其他按默认值即可,如下:

Step3. 创建事件通知规则

  • 依然保持在MNS控制台,选择左边标签页:“事件通知”,点击“创建规则”,再依次输入规则名称:“event-notification-test-rule”、添加资源(点击“添加”按钮)、选择事件类型(可以多选)以及添加接收终端,如下图:
  • 其中资源描述稍微复杂一些,可以参考资源描述后面的问号“?”,其中给了Tips,摘录如下(特别注意:资源描述不能有交集):

    资源描述可以是全名、前缀、后缀以及前后缀,不同资源描述不能有交集。
    OSS资源包括Bucket和Object,通过“/”连接。
    以Bucket(movie)和Object(hello.avi)为例。
    1.全名:movie/hello.avi;
    2.前缀:
    movie/hello,表示movie中以hello为前缀的所有Object,
    movie/,表示movie中所有的Object,
    mov,表示以mov为前缀的所有Bucket中的所有Object;
    3.后缀:.avi,表示所有Bucket中以.avi为后缀的Object;
    4.前后缀:前movie/,后.avi,表示movie中所有以.avi为后缀的Object。
  • 接收端目前支持HttpServer以及Queue两种,此处我们选择Step2.中创建的Queue。
  • 创建一条新规则后,MNS会自动创建一个Topic,并且以指定的Endpoint创建订阅,可以从MNS控制台发布订阅的标签页进行查看,并且可以自由管理这些Topic与Subscription(比如创建新的订阅)。
  • 新规则创建完成后,需要约10分钟的时间才能生效。

Step4. 上传Object

  • 新规则创建成功10分钟后,回到OSS控制台,尝试上传Object到Step1.创建的Bucket:“event-notification-test”中,验证是否能够触发事件通知。在OSS控制台选中“event-notification-test”,再点击左侧标签页的Object管理,然后在该标签页上传Object,如下图:

Step5. 查看Queue中是否接收到消息

  • 上传Object成功后,回到MNS控制台,选中左侧标签页“队列”,并选中区域:“华南1”,查看Step2.创建的队列中的活跃消息数是否为1,并可以点击“接收消息”,查看推送过来的具体事件通知消息。同时,在发布订阅标签页中,也可以看到Topic中多了一条消息,至此可验证事件通知成功。如下图:
  • 推送的事件通知消息内容如下,其具体含义可参考Here:

    {"events": [{ "eventName": "ObjectCreated:PutObject", "eventSource": "acs:oss", "eventTime": "2016-07-05T15:07:59.000Z", "eventVersion": "1.0", "oss": { "bucket": { "arn": "acs:oss:cn-shenzhen:12345:event-notification-test", "name": "event-notification-test", "ownerIdentity": "12345"}, "object": { "deltaSize": 0, "eTag": "D41D8CD98F00B204E9800998ECF8427E", "key": "a", "size": 0}, "ossSchemaVersion": "1.0", "ruleId": "event-notification-test-rule"}, "region": "cn-shenzhen", "requestParameters": {"sourceIPAddress": "140.205.128.107"}, "responseElements": {"requestId": "577BCD4FF3D45CE477F2FA94"}, "userIdentity": {"principalId": "1390402650033793"}}]}

时间: 2024-09-14 11:08:13

MNS支持OSS事件通知啦!!!的相关文章

如何使用OSS事件通知功能?

        图片内容分享平台.音视频平台如何及时的感知有新数据上传到OSS?如何及时感知相关内容发生了更新?如何及时感知重要文件被删除?如何知晓OSS上数据同步已经完成?OSS推出了"事件通知"功能,能够对大家所关心的OSS资源上的相关操作及时的进行消息通知. 一.事件通知介绍         OSS事件通知通知,是异步进行的,不影响正常的OSS操作,对原有的操作完全可以无感知.事件通知,包括"规则"和"通知"两部分.大家可以创建事件通知规则

基于WEB的实时事件通知方案

基于 WEB 的实时事件通知方式大致有五种方案:HTTP拉取方式(pull),HTTP流,Long Polling,FlashXMLSocket方式,Java Applet. 首先说下Comet这个词,Comet这个词是最早由Alex Russell(DojoToolkit 的项目 Lead)提出的,称基于 HTTP 长连接.无须在浏览器端安装插件的"服务器推(Push)"技术为"Comet". 1. HTTP拉取方式(pull) 在这种传统的方法中,客户端以用户可

Linux内核基础--事件通知链(notifier chain)good【转】

转自:http://www.cnblogs.com/pengdonglin137/p/4075148.html 阅读目录(Content) 1.1. 概述 1.2.数据结构  1.3.  运行机理 1.4.  简单一例:  一.概述 二.结构体 三.操作过程 四.实例 转载: http://blog.csdn.net/wuhzossibility/article/details/8079025 http://blog.chinaunix.net/uid-27717694-id-4286337.h

PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)

源码地址:https://github.com/Tinywan/PHP_Experience 测试环境配置: 环境:Windows 7系统 .PHP7.0.Apache服务器 PHP框架:ThinkPHP框架(3.2) Redis数据库:测试数据回调函数:通过一个Redis的自增incr来测试异步脚本执行的次数和访问的时间(平时都是用Redis测试写日志的) 编辑器:Visual Studio Code (CLI运行环境好看点) PHP 的命令行模式       从版本 4.3.0 开始,PHP

封装stream,在读写stream时提供事件通知

前阵子的工作涉及一些网络编程,使用了面向流的方式做传输数据.在代码过程中,遇到一个新需求就是要统计流量.其实最简单的办法就时在读写流的地方增加代码,把功能增加上去就可以.但是我觉得那样对我原理的代码框架影响较大,基于尽量不影响原来的代码的考虑,我想到了Decorator设计模式. 先把代码贴出来,在做解释吧:     以下为引用的内容: public class EventStream : Stream    {        public event EventHandler<FStreamD

实现基于事件通知的.Net套接字

以前学过MFC,我用过的它里面的包装Winsock的两个类CSocket和CAsyncSocket,我一直觉得它哪个事件通知的功能比较不错,特别是在连接的两方收发数据没有一定的规律的时候比较有用,虽然不用它的事件通知也可以实现功能,但是你需要循环检测套接字的状态或者阻塞等待,如果每次都要做这些琐碎的工作岂不是很麻烦,于是我就想对这些功能作一次封装.当然在.net里面采用delegate和event是最好的选择了.下面就是我实现的一些细节: 先讲一下思路:其实这个还是很简单了,估计高手们会不屑一顾

link下多集合监视和事件通知机制是靠什么完成的?

问题描述 link下多集合监视和事件通知机制是靠什么完成的? link下多集合监视和事件通知机制是靠什么完成的? 解决方案 引起集合变动的无非就是add remove等几个方法, 在里面插入代码,引起changed事件就可以实现了

火狐select的option不支持ondbonclick事件吗?

问题描述 火狐select的option不支持ondbonclick事件吗? 火狐select的option不支持ondbonclick事件吗?我在谷歌下是可以的,但是到了火狐就不行了,再说明下,这个select是之后新生成的元素,跟这点会不会有关系??? 解决方案 ondbonclick是什么,应该是ondbclick吧.

mfc 事件 线程-mfc 用事件通知线程退出

问题描述 mfc 用事件通知线程退出 用事件通知线程退出与给while循环设置条件,有何区别,这种机制有何优势例如: while (TRUE){... ... if (WaitForSingleObject(pCarMovJudge->m_hThreadExitEvent 100) == WAIT_OBJECT_0)return ; } 与 while (!interrupt) { ... ... } 解决方案 1:事件的使用更加灵活.在等待信号的过程中,程序员可以设置任意的等待超时时间,等待过