全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
消息服务

五步玩转事件通知

更新时间:2017-06-07 13:26:11

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

示例:

某个用户创建了一个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”(此处方便测试可以设置读写权限为公共读写),如下:

11

12

13

Step2. 创建消息接收的Queue

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

21

22

23

Step3. 创建事件通知规则

  • 依然保持在MNS控制台,选择左边标签页:“事件通知”,点击“创建规则”,再依次输入规则名称:“event-notification-test-rule”、添加资源(点击“添加”按钮)、选择事件类型(可以多选)以及添加接收终端,如下图:
  • 其中资源描述稍微复杂一些,可以参考资源描述后面的问号“?”,其中给了Tips,摘录如下(特别注意:资源描述不能有交集):
    1. 资源描述可以是全名、前缀、后缀以及前后缀,不同资源描述不能有交集。
    2. OSS资源包括BucketObject,通过“/”连接。
    3. Bucketmovie)和Objecthello.avi)为例。
    4. 1.全名:movie/hello.avi
    5. 2.前缀:
    6. movie/hello,表示movie中以hello为前缀的所有Object
    7. movie/,表示movie中所有的Object
    8. mov,表示以mov为前缀的所有Bucket中的所有Object
    9. 3.后缀:.avi,表示所有Bucket中以.avi为后缀的Object
    10. 4.前后缀:前movie/,后.avi,表示movie中所有以.avi为后缀的Object
  • 接收端目前支持HttpServer以及Queue两种,此处我们选择Step2.中创建的Queue。
  • 创建一条新规则后,MNS会自动创建一个Topic,并且以指定的Endpoint创建订阅,可以从MNS控制台发布订阅的标签页进行查看,并且可以自由管理这些Topic与Subscription(比如创建新的订阅)。
  • 新规则创建完成后,需要约10分钟的时间才能生效。

31

32

33

34

35

36

37

38

39

Step4. 上传Object

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

41

42

43

44

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

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

51

52

53

本文导读目录