更新时间:2024-03-06 GMT+08:00
分享

设置桶的消息通知配置

功能介绍

OBS消息通知功能能够帮助您对桶的重要的操作及时通知到您,确保您安全、及时知道发生在桶上的关键事件。

默认情况下,您的桶没有配置事件通知。这个时候桶的通知配置将是一个空NotificationConfiguration。对已配置有事件通知的桶,可以通过添加空NotificationConfiguration元素禁用消息通知功能。

1
2
<NotificationConfiguration>
</NotificationConfiguration> 

目前对象存储服务(OBS)支持函数工作流服务(FunctionGraph)桶通知服务配置。以FunctionGraph为例,当OBS接收到配置消息通知的请求后,会验证指定的函数是否存在

为了能成功执行此配置操作,需要确保执行者拥有PutBucketNotification权限。默认情况下只有桶的所有者拥有该权限,但可以通过设置桶策略授权给其他用户。

函数工作流服务的操作请参考函数工作流服务(FunctionGraph)中使用OBS触发器章节描述。

请求消息样式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
PUT /?notification HTTP/1.1 
Host: bucketname.obs.cn-north-4.myhuaweicloud.com 
Date: date
Authorization: authorization string

<NotificationConfiguration>  
 
    <FunctionStageConfiguration> 
        <Id>ConfigurationId</Id> 
        <Filter>
             <Object>
                 <FilterRule>
                     <Name>prefix</Name>
                     <Value>prefix-value</Value>
                 </FilterRule>
                 <FilterRule>
                     <Name>suffix</Name>
                     <Value>suffix-value</Value>
                 </FilterRule>
            </Object>
         </Filter>
        <FunctionStage>function-stage-arn</FunctionStage> 
        <Event>event-type</Event> 
        ... 
    </FunctionStageConfiguration> 
</NotificationConfiguration>

请求消息参数

该请求消息中不使用消息参数。

请求消息头

该请求使用公共消息头,具体参见表3

请求消息元素

在此请求中,需要在请求的消息体中配置桶的通知,通知的配置信息以XML格式上传。具体的配置元素如表1描述。

表1 桶的通知服务配置元素

名称

描述

是否必选

NotificationConfiguration

配置桶事件通知的根元素,如果子元素为空,说明消息通知功能处于关闭状态。

类型:Container

父元素:无

子元素:0个或多个FunctionStageConfiguration

FunctionStageConfiguration

配置函数服务的元素。

类型:Container

父元素:NotificationConfiguration

子元素:Id,Filter,FunctionStage,一个或多个Event

FunctionStage

函数服务中函数的URN,当OBS检测到桶中发生特定的事件后,将会发送消息至函数服务调用执行该函数。

类型:String

父元素:FunctionStageConfiguration

如果添加父元素FunctionStageConfiguration,本元素是必选项

Id

每项事件通知配置的唯一标识,如果是用户未指定ID,系统将自动分配一个ID。

类型:String

父元素:FunctionStageConfiguration

Filter

Object的元素,用以保存过滤对象名的一组规则。

类型:Container

父元素:FunctionStageConfiguration

子元素: Object

Object

定义过滤规则的元素,该规则用以匹配对象名前缀和后缀。

类型:Container

父元素:Filter

子元素:一个或者多个FilterRule

FilterRule

定义过滤规则键值对的元素。

类型:Container

父元素:Object

子元素:Name,Value

Name

指定规则按对象名前缀或后缀进行过滤。

类型:String

父元素:FilterRule

合法值:prefix或者suffix

Value

指定的对象名关键字,根据Name元素定义的前缀或后缀,输入需要过滤的对象的关键字信息,字符越长匹配精度越高,最大可支持1024个字符。

类型:String

父元素:FilterRule

Event

需要发布通知消息的事件类型。

说明:

在一个FunctionStageConfiguration配置项中可以添加多个事件类型。

类型:String

合法值:

上传对象操作可以取以下值:

  • ObjectCreated:Put
  • ObjectCreated:Post
  • ObjectCreated:Copy
  • ObjectCreated:CompleteMultipartUpload

或者使用通配符支持所有上传操作

  • ObjectCreated:*

删除对象操作可以取以下值:

  • ObjectRemoved:Delete
  • ObjectRemoved:DeleteMarkerCreated

或者使用通配符支持所有删除操作

  • ObjectRemoved:*

父元素:FunctionStageConfiguration

如果是父元素 FunctionStageConfiguration添加后,本元素是必选项

响应消息样式

1
2
3
4
HTTP/1.1 status_code
Date: date
Content-Length: length
Content-Type: type

响应消息头

该请求的响应消息使用公共消息头,具体请参考表1

响应消息元素

该请求的响应消息中不带有响应元素。

错误响应消息

当用户执行调用本接口时,系统将会检查NotificationConfiguration元素的有效性,以及配置是否有效。中列出本接口的一些常见错误,以及可能原因。

表2 配置桶的通知的错误码列表

错误码

描述

HTTP状态码

InvalidArgument

该错误可能是由于下列原因导致。

  • 指定了不支持的event。
  • 指定的URN不存在或者填写错误,请确认URN合法。
  • 指定的URN中的区域与桶所在的区域不一致,请确保桶所在的区域与URN中的区域一致。
  • 指定的过滤规则之间存在互相包含或者重叠。

400 Bad Request

AccessDenied

执行者不是桶的所有者,或者还未被授权PutBucketNotification权限。

403 Forbidden

请求示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
PUT /?notification HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.cn-north-4.myhuaweicloud.com
Accept: */*
Date: WED, 01 Jul 2015 03:15:45 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:uRTt8YTkAqJCUfWfYkveEcIGAC0=
Content-Length: 538

<NotificationConfiguration> 
  <FunctionStageConfiguration> 
    <Id>ConfigurationId</Id>  
    <Filter>
      <Object>
        <FilterRule>
          <Name>prefix</Name>
          <Value>object</Value>
        </FilterRule>
        <FilterRule>
          <Name>suffix</Name>
          <Value>txt</Value>
        </FilterRule>
      </Object> 
    </Filter>  
    <FunctionStage>urn:fss:cn-east-3: 4b29a3cb5bd64581bda5714566814bb7:function:default:test:latest</FunctionStage>  
    <Event>ObjectCreated:Put</Event> 
  </FunctionStageConfiguration>
</NotificationConfiguration>

响应示例

1
2
3
4
5
6
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 9046000001643C8E80C19FAC4D8068E3
x-obs-id-2: 32AAAQAAEAABSAAkgAIAABAAAQAAEAABCTFAxJPTib3GkcQ7nVVs4C8Z6NNcfVDu
Date: WED, 01 Jul 2015 03:15:46 GMT
Content-Length: 0
分享:

    相关文档

    相关产品