
# 使用EG发送OBS事件通知
#### 使用场景
在对桶及桶中的对象执行某些操作后，如果您希望能够及时感知，进而触发后续操作流程，那么可以通过EG事件通知来实现。
例如：您需要向源桶中上传图片后，自动触发后续流程执行为图片添加水印，并将添加水印后的图片存放至目标桶中，那么可以通过配置EG事件通知来实现。
#### OBS结合EG使用原理
对象存储服务（Object Storage Service，OBS）用于存储文件、图片、视频等数据，通过对文件、图片、视频等对象执行上传、修改、删除等操作来产生OBS事件；[事件网格服务](https://support.huaweicloud.com/eg/index.html)（EventGrid，EG）捕获到OBS事件后，会按照事先配置好的规则自动触发后续操作任务或流程执行。因此，OBS和EG的结合使用，即**OBS"自动发送通知"，EG"自动派发任务"，期间无需人工干预**。
EG主要由事件源、通道、事件目标组成：
- **事件源：**用户请求操作云服务资源产生云服务事件作为事件源。
- **通道：**事件的中转站，负责接收来自云服务的事件。
- **事件目标：**事件的处理终端，受来自通道的云服务事件触发，促使其他云服务执行一些操作或流程（如：使用函数工作流服务为图片添加水印并存储至OBS桶中）。
OBS结合EG使用原理如[图1]所示。
图1EG事件通知原理图   
![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000002417218585.png "点击放大")
OBS结合EG事件通知使用的原理如下：
1. 管理员提前创建EG通知，配置好事件源、通道、事件目标。
2. 管理员或其他用户对OBS桶中对象执行操作，产生OBS事件作为事件源。
3. EG（事件网格服务）通过通道将事件源推送至事件目标，事件目标促使其他云服务执行后续一些操作或流程。
关于OBS结合EG事件通知使用的实践案例，请参见[结合EG事件通知自动处理OBS桶中的图片](https://support.huaweicloud.com/bestpractice-obs/obs_05_2217.html)。
 #### 支持的OBS事件类型
EG通知支持的OBS事件源类型有两种：OBS应用事件源、对象存储服务 OBS。
- **OBS应用事件源**：该事件源来源于对象存储服务，操作OBS桶内对象的特定行为产生的事件。
- **对象存储服务 OBS**：该事件源来源于对象存储服务，关于OBS桶对象相关的操作以及系统内部触发的操作产生的审计日志事件。
表1EG通知支持的OBS事件类型 
| OBS事件源类型   | EG事件类型                                        | 说明                                                                                                  |
|:---|:---|:---|
| OBS应用事件源   | OBS:DWR:ObjectCreated:PUT                     | 上传对象（使用PUT方法）。                                                                                      |
| OBS应用事件源   | OBS:DWR:ObjectCreated:POST                    | 上传对象（使用POST方法）。                                                                                     |
| OBS应用事件源   | OBS:DWR:ObjectCreated:COPY                    | 复制对象                                                                                                |
| OBS应用事件源   | OBS:DWR:ObjectCreated:CompleteMultipartUpload | 采用多段上传时的合并分段任务。                                                                                     |
| OBS应用事件源   | OBS:DWR:ObjectRemoved:Delete                  | 指定对象版本号删除对象。                                                                                        |
| OBS应用事件源   | OBS:DWR:ObjectRemoved:DeleteMarkerCreated     | 不指定对象版本号删除对象。                                                                                       |
| 对象存储服务 OBS | OBS:CloudTrace:ApiCall                        | 调用ApiGateway触发的操作所产生的审计日志事件。                                                                        |
| 对象存储服务 OBS | OBS:CloudTrace:ObsSDK                         | 调用OBS提供的SDK触发的关于OBS桶相关操作所产生的审计日志事件。                                                                 |
| 对象存储服务 OBS | OBS:CloudTrace:ConsoleAction                  | 通过[控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)执行的操作所产生的审计日志事件。 |
| 对象存储服务 OBS | OBS:CloudTrace:SystemAction                   | 系统内部触发的操作所产生的审计日志事件。                                                                                |
| 对象存储服务 OBS | OBS:CloudTrace:Others                         | 除通过OBS SDK触发的关于OBS桶相关操作外的操作所产生的审计日志事件。                                                              |
   
#### OBS发送的事件通知消息结构
当用户对桶中对象执行操作产生OBS事件后，OBS会向EG发送固定消息结构（JSON格式）的事件通知，EG收到OBS消息通知后会触发其他云服务执行一些操作或流程。
- [消息结构字段说明]
  OBS向EG发布的事件通知是具有以下JSON结构的消息：
  ```
  {
      channel_id: "a1b2c3d4e5f678901234567890abcdef",
      events: [
          {
              specversion: "1.0",
              id: "17793124-84s5-5e1c-9s20-8fes5s8b54wf",
              source: "HC.OBS.DWR",
              type: "OBS:DWR:ObjectCreated:PUT",
              datacontenttype: "application/json",
              dataschema: "",
              subject: "exampleobject",
              time: "Fri, 04 Jul 2025 06:08:01 GMT",
              ttl: "4000",
              data: {                             
                  eventVersion: "3.0",
                  eventSource: "OBS",
                  eventRegion: "cn-east-3",
                  eventTime: "2025-7-04T06:08:01.957Z",
                  eventName: "ObjectCreated:PUT",
                  userIdentity: {
                      ID: "08b4efe0fc00d3ce0f17c01b948f6e80"
                  },
                  requestParameters: {
                      sourceIPAddress: "x.x.x.x"
                  },
                  responseElements: {
                      x-obs-request-id: "000001980D3CC5B5024FE333FEB97E7F",
                      x-obs-id-2: "",
                  },
                  obs: {
                      Version: "1.0",
                      configurationId: "test-trigger",
                      bucket: {
                          name: "examplebucket",
                          ownerIdentity: {
                              ID: "08b4efe0fc00d3ce0f17c01b948f6e80",
                          },
                          bucket: "examplebucket"
                      },
                      object: {
                          key: "exampleobject",
                          eTag: "65a8e27d8879283831b664bd8b7f0ad4",
                          size: "1024",
                          versionId: 9876543210987654321,
                          sequencer: "1",
                          oldpsxpth: ""
                      }
                  }
              }
          },
      ]
  }
  ```
  各字段说明如下：
  表2EG事件通知消息字段说明 
  | 字段名称                                              | 说明                                                                                                                                                                                      |
  |:---|:---|
  | channel_id                                        | EG事件通道的唯一标识符。                                                                                                                                                                           |
  | events\[\].specversion                            | EG事件规范版本。                                                                                                                                                                               |
  | events\[\].id                                     | EG事件的唯一标识符。                                                                                                                                                                             |
  | events\[\].source                                 | EG事件源服务名，固定为"HC.OBS.DWR"。                                                                                                                                                               |
  | events\[\].type                                   | EG事件类型，以","分割的字符串类型。                                                                                                                                                                    |
  | events\[\].datacontenttype                        | EG事件数据的内容类型，固定为application/json。                                                                                                                                                        |
  | events\[\].dataschema                             | EG事件数据的模式。                                                                                                                                                                              |
  | events\[\].subject                                | 对象名。                                                                                                                                                                                    |
  | events\[\].time                                   | EG事件的发生时间，使用UTC时间格式。                                                                                                                                                                    |
  | events\[\].ttl                                    | EG事件的生存时间，默认为4秒。                                                                                                                                                                        |
  | events\[\].data.eventVersion                      | OBS消息版本号。                                                                                                                                                                               |
  | events\[\].data.eventSource                       | 消息源，固定为"OBS"。                                                                                                                                                                           |
  | events\[\].data.eventRegion                       | 事件所在区域。                                                                                                                                                                                 |
  | events\[\].data.eventTime                         | 事件时间，格式为ISO-8601。                                                                                                                                                                       |
  | events\[\].data.eventName                         | 触发事件通知的事件名。                                                                                                                                                                             |
  | events\[\].data.userIdentity.ID                   | 触发事件的用户对应的计费ID。                                                                                                                                                                         |
  | events\[\].data.requestParameters.sourceIPAddress | 请求的源IP。                                                                                                                                                                                 |
  | events\[\].data.responseElements.x-obs-request-id | 请求对应的RequestID。                                                                                                                                                                         |
  | events\[\].data.responseElements.x-obs-id-2       | 帮助定位问题的特殊符号。                                                                                                                                                                            |
  | events\[\].data.obs.Version                       | OBS版本。                                                                                                                                                                                  |
  | events\[\].data.obs.configurationId               | 此事件匹配的OBS中事件触发器的名称。                                                                                                                                                                     |
  | events\[\].data.obs.bucket.name                   | 桶的名称。                                                                                                                                                                                   |
  | events\[\].data.obs.bucket.ownerIdentity.ID       | 桶拥有者的账号ID。                                                                                                                                                                              |
  | events\[\].data.obs.bucket.bucket                 | 桶的名称。 说明： 用于兼容多种消息格式，所以有两个桶名称参数。 |
  | events\[\].data.obs.object.key                    | 对象名。                                                                                                                                                                                    |
  | events\[\].data.obs.object.eTag                   | 对象的ETag。                                                                                                                                                                                |
  | events\[\].data.obs.object.size                   | 对象的大小。                                                                                                                                                                                  |
  | events\[\].data.obs.object.versionId              | 对象的版本ID。                                                                                                                                                                                |
  | events\[\].data.obs.object.sequencer              | 确定某个特定对象事件顺序的标识。                                                                                                                                                                        |
  | events\[\].data.obs.object.oldpsxpth              | 文件在并行文件系统中rename前的路径。                                                                                                                                                                   |
     
- [消息结构示例]
  - 上传对象
    ```
    {
        channel_id: "a1b2c3d4e5f678901234567890abcdef",
        events: [
            {
                specversion: "1.0",
                id: "17793124-84s5-5e1c-9s20-8fes5s8b54wf",
                source: "HC.OBS.DWR",
                type: "OBS:DWR:ObjectCreated:PUT",
                datacontenttype: "application/json",
                dataschema: "",
                subject: "exampleobject",
                time: "Fri, 04 Jul 2025 06:08:01 GMT",
                ttl: "4000",
                data: {                             
                    eventVersion: "3.0",
                    eventSource: "OBS",
                    eventRegion: "cn-east-3",
                    eventTime: "2025-7-04T06:08:01.957Z",
                    eventName: "ObjectCreated:PUT",
                    userIdentity: {
                        ID: "08b4efe0fc00d3ce0f17c01b948f6e80"
                    },
                    requestParameters: {
                        sourceIPAddress: "x.x.x.x"
                    },
                    responseElements: {
                        x-obs-request-id: "000001980D3CC5B5024FE333FEB97E7F",
                        x-obs-id-2: "",
                    },
                    obs: {
                        Version: "1.0",
                        configurationId: "test-trigger",
                        bucket: {
                            name: "examplebucket",
                            ownerIdentity: {
                                ID: "08b4efe0fc00d3ce0f17c01b948f6e80",
                            },
                            bucket: "examplebucket"
                        },
                        object: {
                            key: "exampleobject",
                            eTag: "65a8e27d8879283831b664bd8b7f0ad4",
                            size: "1024",
                            versionId: 9876543210987654321,
                            sequencer: "1",
                            oldpsxpth: ""
                        }
                    }
                }
            },
        ]
    }
    ```
    
  
  - 删除对象（手动删除）
    ```
    {
        channel_id: "a1b2c3d4e5f678901234567890abcdef",
        events: [
            {
                specversion: "1.0",
                id: "17793124-84s5-5e1c-9s20-8fes5s8b54wf",
                source: "HC.OBS.DWR",
                type: "OBS:DWR:ObjectRemoved:Delete",
                datacontenttype: "application/json",
                dataschema: "",
                subject: "exampleobject",
                time: "Fri, 04 Jul 2025 06:08:01 GMT",
                ttl: "4000",
                data: {                             
                    eventVersion: "3.0",
                    eventSource: "OBS",
                    eventRegion: "cn-east-3",
                    eventTime: "2025-7-04T06:08:01.957Z",
                    eventName: "ObjectRemoved:Delete",
                    userIdentity: {
                        ID: "08b4efe0fc00d3ce0f17c01b948f6e80"
                    },
                    requestParameters: {
                        sourceIPAddress: "x.x.x.x"
                    },
                    responseElements: {
                        x-obs-request-id: "000001980D3CC5B5024FE333FEB97E7F",
                        x-obs-id-2: "",
                    },
                    obs: {
                        Version: "1.0",
                        configurationId: "test-trigger",
                        bucket: {
                            name: "examplebucket",
                            ownerIdentity: {
                                ID: "08b4efe0fc00d3ce0f17c01b948f6e80",
                            },
                            bucket: "examplebucket"
                        },
                        object: {
                            key: "exampleobject",
                            eTag: "65a8e27d8879283831b664bd8b7f0ad4",
                            size: "1024",
                            versionId: 9876543210987654321,
                            sequencer: "1",
                            oldpsxpth: ""
                        }
                    }
                }
            },
        ]
    }
    ```
    
  
  - 删除对象（使用生命周期规则删除）
    ```
    {
        channel_id: "a1b2c3d4e5f678901234567890abcdef",
        events: [
            {
                specversion: "1.0",
                id: "17793124-84s5-5e1c-9s20-8fes5s8b54wf",
                source: "HC.OBS.DWR",
                type: "OBS:DWR:ObjectRemoved:Delete",
                datacontenttype: "application/json",
                dataschema: "",
                subject: "exampleobject",
                time: "Fri, 04 Jul 2025 06:08:01 GMT",
                ttl: "4000",
                data: {                             
                    eventVersion: "3.0",
                    eventSource: "OBS",
                    eventRegion: "cn-east-3",
                    eventTime: "2025-7-04T06:08:01.957Z",
                    eventName: "ObjectRemoved:Delete",
                    userIdentity: {
                        ID: "08b4efe0fc00d3ce0f17c01b948f6e80"
                    },
                    requestParameters: {
                        sourceIPAddress: "x.x.x.x"
                    },
                    responseElements: {
                        x-obs-request-id: "000001980D3CC5B5024FE333FEB97E7F",
                        x-obs-id-2: "",
                    },
                    obs: {
                        Version: "1.0",
                        configurationId: "test-trigger",
                        bucket: {
                            name: "examplebucket",
                            ownerIdentity: {
                                ID: "08b4efe0fc00d3ce0f17c01b948f6e80",
                            },
                            bucket: "examplebucket"
                        },
                        object: {
                            key: "exampleobject",
                            eTag: "65a8e27d8879283831b664bd8b7f0ad4",
                            size: "1024",
                            versionId: 9876543210987654321,
                            sequencer: "1",
                            oldpsxpth: ""
                        }
                    }
                }
            },
        ]
    }
    ```
    
   
#### 约束与限制
表3约束与限制 
| 约束类别     | 具体限制                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|
| OBS桶限制   | - 一个桶中最多同时配置10条EG通知。  - 一个桶的多条EG通知不允许重复，即任意对象在发生任意事件时都不能同时匹配两条及以上的EG通知规则，重复规则会创建失败。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| 权限限制     | 如果事件源选择"OBS应用事件源"，需您的账号添加"Tenant Administrator"权限，如何授权请参见[依赖角色的授权方法](https://support.huaweicloud.com/usermanual-iam/iam_01_0657.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| 账号限制     | 暂不支持联邦账号使用EG通知功能。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| 创建EG通知限制 | - 一个订阅最多关联五个事件目标。  - 事件目标投递失败时，默认支持重试16次。  - 同一个事件在EG通道内传递的次数不能超过三次。  - 不支持跨账号的能力使用事件订阅功能。   |
| 编辑EG通知限制 | - 已创建的订阅，无法修改事件源提供方。  - 已创建的订阅，无法修改已绑定的自定义事件通道。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| 其他       | 对于时延敏感（秒级）的业务，消息通知无法保证时延。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   
#### EG通知费用说明
使用EG通知需支付EG服务费用，计费详情请参见[EG计费说明](https://support.huaweicloud.com/price-eg/eg-pr-005.html)。
#### 前提条件
- 已[开通事件网格服务](https://support.huaweicloud.com/qs-eg/eg-qs-001.html)并为账号或IAM用户授予"EG FullAccess"权限。
- 华为账号或IAM用户已添加"Tenant Administrator"权限，如何授权请参见[通过IAM授予使用OBS的权限](https://support.huaweicloud.com/usermanual-obs/obs_03_0122.html#ZH-CN_TOPIC_0000001904384853)。
 
#### 创建EG通知
OBS支持通过[控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)方式创建EG通知，不支持通过API、SDK、OBS Browser+、obsutil方式创建EG通知。
#### 使用OBS控制台
1. 在OBS[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)左侧导航栏选择"桶列表"。
2. 在桶列表中，单击待操作的桶，进入"对象"页面。
3. 在左侧列表页选择"数据管理 \> 事件通知"，进入"EG通知"页签。
4. 单击"创建"，进入事件网格控制台创建事件订阅。
   
   关于使用事件网格（EG），具体请参见[华为云服务事件发送流程](https://support.huaweicloud.com/qs-eg/eg-qs-002.html)。
   
   
5. 修改订阅名称和描述。
   
   1. 单击订阅名称旁的![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000002383499448.png)，在"配置名称和描述"弹窗，修改订阅名称和描述。
      **订阅名称由字母、数字、点、下划线和中划线组成，必须以字母或数字开头，最长128个字符。**
      
   
   2. 单击"确定"，完成订阅名称和描述信息输入。
   
   
   
   
6. 企业用户请在订阅名称旁选择"企业项目"，单击"查看企业项目"可查看企业项目清单。 
   如无特殊的企业项目划分和管理需求，此处可保持选择默认企业项目"default"。
   **企业项目配置后，不支持修改，请根据您的业务需求选择合适的企业项目。**
   
   
7. 配置事件源。 
   1. 单击"事件源"模块，右侧弹出"事件源"弹窗，如[图2]所示。
      图2配置事件源   
      ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000002383659304.png "点击放大") 
   
   2. 选择事件源提供方。 此处保持默认，选择"云服务"，即云服务作为事件源提供方。
      
   
   3. 设置事件源参数。
      表4OBS事件源参数说明 
      | 参数名称  | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
      |:---|:---|
      | 事件源   | 选择云服务事件源。 要使用OBS事件作为事件源，则支持选择以下两种事件源： - **OBS应用事件源** ：该事件源来源于对象存储服务，操作OBS桶内对象的特定行为产生的事件。 事件源选择"OBS应用事件源"，需您的账号添加"Tenant Administrator"权限，如何授权请参见[依赖角色的授权方法](https://support.huaweicloud.com/usermanual-iam/iam_01_0657.html)。   - **对象存储服务 OBS**：该事件源来源于对象存储服务，关于OBS桶对象相关的操作以及系统内部触发的操作产生的审计日志事件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
      | 桶     | 当事件源选择"OBS应用事件源"时，配置该参数。 选择用于产生OBS事件的桶。当对此处选择的桶及其中对象进行某些操作时，会产生OBS事件作为EG通知的事件源。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
      | 事件类型  | 配置触发EG通知的OBS事件类型，即对目标对象执行哪些操作会触发EG通知。例如：您希望在向桶中上传对象后触发EG通知，那么事件类型可以选择"OBS:DWR:ObjectCreated:PUT"和"OBS:DWR:ObjectCreated:POST"。 您可以为目标对象配置一条EG事件通知规则，并在规则中指定多个事件类型。 - **一个桶的多条EG通知不允许重复，即任意对象在发生任意事件时都不能同时匹配两条以上的EG通知规则，重复规则会创建失败。**  - **对开启了多版本控制的桶执行对象删除操作时，如果未指定版本ID，不会触发删除对象事件通知。是因为未指定版本ID删除对象，默认不会删除任意版本对象，而是将当前版本对象转为历史版本对象，并添加删除标记作为当前版本。**   关于EG支持的OBS事件类型，请参见[支持的OBS事件类型]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
      | 对象名前缀 | 可选参数。 当事件源选择"OBS应用事件源"，且需要指定产生事件源的具体对象时，可以配置该参数。 操作桶中指定对象名前缀的对象时，会产生OBS事件作为EG通知的事件源。 - 如果要匹配桶内的所有对象，则对象名前缀和对象名后缀均置空。  - 如果要匹配桶的根目录下testfolder目录中的所有对象，则对象名前缀填写为"testfolder/"，对象名后缀置空。  - 如果要匹配桶内所有JPG格式的对象，则对象名前缀置空，对象名后缀填写为".jpg"。  - 如需匹配桶根目录下testfolder目录中所有MP3格式的对象，则对象名前缀填写为"testfolder/"，对象名后缀填写为".mp3"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
      | 对象名后缀 | 可选参数。 当事件源选择"OBS应用事件源"，且需要指定产生事件源的具体对象时，可以配置该参数。 操作桶中指定对象名后缀的对象时，会产生OBS事件作为EG通知的事件源。 - 如果要匹配桶内的所有对象，则对象名前缀和对象名后缀均置空。  - 如果要匹配桶的根目录下testfolder目录中的所有对象，则对象名前缀填写为"testfolder/"，对象名后缀置空。  - 如果要匹配桶内所有JPG格式的对象，则对象名前缀置空，对象名后缀填写为".jpg"。  - 如需匹配桶根目录下testfolder目录中所有MP3格式的对象，则对象名前缀填写为"testfolder/"，对象名后缀填写为".mp3"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
      | 对象名编码 | 可选参数。 当事件源选择"OBS应用事件源"，且需要对产生事件的对象名称进行编码时，配置该参数。 **当您在事件目标中所使用的函数会对读取的对象名进行解码时，请打开此处的对象名编码，这样事件目标中的函数才能正确读取对象名称。**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
      | 过滤规则  | 事件过滤规则，事件源产生的事件与过滤规则进行匹配，匹配成功后事件才会被推送到事件目标执行后续操作。 例如：您想实现向除test-bucket外的桶上传.jpg图片时可以触发EG事件通知执行后续操作，那么可以做如下配置： - 事件源：OBS应用事件源。  - 桶：test-bucket。  - 事件类型：OBS:DWR:ObjectCreated:PUT、OBS:DWR:ObjectCreated:POST。  - 对象名后缀：.jpg。  - 过滤规则： ``` { "source": [ { "op": "StringIn", "values": [ "HC.OBS.DWR" ] } ], "type": [ { "op": "StringIn", "values": [ "OBS:DWR:ObjectCreated:PUT", "OBS:DWR:ObjectCreated:POST" ] } ], "subject": { "and": [ { "op": "StringEndsWith", "values": [ ".jpg" ] } ] }, "data": { "obs": { "bucket": { "name": [ { "op": "StringNotIn", "values": [ "test-bucket" ] } ] } } } } ```    如果需要了解更多过滤规则的信息，请参考[过滤规则参数说明](https://support.huaweicloud.com/usermanual-eg/eg-ug-018.html)和[过滤规则示例](https://support.huaweicloud.com/usermanual-eg/eg-ug-019.html)。 |
         
      
   
   4. 单击"确定"，完成事件源配置。
   
   
   
   
8. 配置事件目标。 
   1. 单击"事件目标"，右侧弹出"事件目标"对话框。
      图3配置事件目标   
      ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000002417138737.png "点击放大") 
   
   2. 设置事件目标参数。
      - 事件目标提供方选择"**云服务** "，即云服务作为事件目标提供方。事件目标在接收到来自事件源的事件通知后，会触发云服务执行相关操作和流程。设置如下参数：
        表5事件目标提供方选择"**云服务** " 
        | 参数名称   | 子参数                 | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
        |:---|:---|:---|
        | 选择事件目标 | 事件网格 EG             | 事件目标向EG派发任务，使其执行下游通道关联的下游事件订阅。 说明： 事件订阅将事件源、事件通道、事件目标绑定在一起，通过事件规则将事件源发出的事件推送至事件目标，从而执行事件目标所配置的操作。详情请参见[事件订阅](https://support.huaweicloud.com/usermanual-eg/eg-ug-007.html)。 需要配置以下参数： - **目标类型：**选择同账号或跨账号。同账号即选择同账号下的事件订阅；跨账号即选择其他账号下的事件订阅。  - **区域：** 事件订阅所在区域。目前仅支持和[4]事件订阅同区域的事件订阅。  - **项目ID：** 目标通道所属的项目ID。 项目ID可以在对应账号的"我的凭证"中获取到。 当目标类型选择"同账号"时，支持单击输入框右侧的"输入当前项目ID"来一键填充当前项目ID。 **此处项目ID必须与目标通道所属项目ID保持一致，否则会导致事件无法发布至目标通道。**   - **通道：** 目标通道ID。 同账号同区域时支持选择当前账号下的通道，跨账号时需要您输入通道ID。 同账号下是下拉列表选择通道，且不能选择上游同一通道和default通道。 跨账号输入ID时不能输入上游同一通道ID和default通道ID，否则事件不通。 如果当前通道没有关联事件订阅，发布到该通道的消息将无法消费，此时需要新增事件订阅。下游事件订阅的事件源和上游事件订阅的事件源名称保持一致，且下游的事件源必须是自定义事件源。   - **委托：** 给EG授予发布事件到事件通道的权限"eg:channels:putEvents"。 - 下拉框仅展示被委托方是EG的委托，请确保您选择的委托被授权的权限包含"eg:channels:putEvents"。  - 如无委托，可单击旁边的"创建委托"进行创建，将会创建名为"EG_TARGET_AGENCY"的委托。     |
        | 选择事件目标 | 消息通知 SMN            | 事件目标向SMN派发任务，触发SMN发送消息通知。 需要配置以下参数： - **主题：** 选择消息通知主题，需要提前创建。详情请参见 [创建主题](https://support.huaweicloud.com/usermanual-smn/zh-cn_topic_0043961401.html)。   - **委托：** 给EG授予发布SMN消息的权限"smn:topic:publish"。 - 下拉框仅展示被委托方是EG的委托，请确保您选择的委托被授权的权限包含"smn:topic:publish"。  - 如无委托，可单击旁边的"创建委托"进行创建，将会创建名为"EG_SMN_PUBLISHER_AGENCY"的委托。    - **类型：** 消息标题的类型。如果您需要指定消息标题为固定格式，那么可以配置消息标题。支持以下两种类型。 - 常量：将指定的常量作为消息标题。若选择常量，需要指定消息标题，且所有消息的消息标题都是相同的。  - 变量：从CloudEvents标准事件中获取变量值，将变量值代入模板中作为消息标题。如果生成的消息标题超长，则会截取前512个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
        | 选择事件目标 | 分布式消息服务 Kafka版      | 事件目标向分布式消息服务Kafka版派发任务，触发分布式消息服务Kafka版接收消息、存储消息、分发消息。 需要配置以下参数： - **目标连接：** 您可以通过对应虚拟私有云和子网的目标连接来连接私网webhook，此处仅支持添加分布式消息服务Kafka版作为目标连接。需要提前[创建分布式消息服务Kafka版目标连接](https://support.huaweicloud.com/usermanual-eg/eg-ug-033.html#section2)。 说明： Webhook就是客户端或者代理客户端提供一个webhook的url，服务器有新数据时就往url推送数据，客户端通过探测随时更新数据。   - **Topic：** 消息主题，是消息队列的一种发布与订阅消息模型。生产者向消息主题发布消息，多个消费者订阅该消息主题的消息。需要提前[创建Topic](https://support.huaweicloud.com/usermanual-kafka/kafka-ug-180604018.html)。  - **启用消息Key：**启用后会自动转换消息key的值。  - **类型：** 消息Key的转换类型。支持以下两种转换类型： - 变量：从CloudEvents标准事件中获取变量值，将变量值作为Key值。  - 常量：将指定的常量作为key值。若选择常量，所有消息将发送至同一分区。   如果需要了解更多转换类型的信息，请参考[事件内容转换](https://support.huaweicloud.com/usermanual-eg/eg-ug-020.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
        | 选择事件目标 | FunctionGraph（函数计算） | 事件目标向FunctionGraph派发任务，触发FunctionGraph执行相关函数操作。 需要配置以下参数： - **函数：** 选择需要触发的函数。如果还未创建函数，请先[创建函数](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1441.html)。  - **版本/别名：** 配置版本/别名，当选择其一时，则另外一个参数无需配置。 - **版本：**选择函数的版本。当前默认选择"latest"。  - **别名：**选择函数的别名。    - **执行方式：** 请求函数调用的方式。 - 异步：异步执行指的是函数调用请求发送后不等待函数调用结果。  - 同步：同步执行指的是函数调用请求需要明确等到响应结果，也就是说这样的请求必须得调用到用户的函数，并且等到调用完成才返回。    - **委托：** 给EG授予同步/异步执行函数的权限"functiongraph:function:invoke\*"。 - 下拉框仅展示被委托方是EG的委托，请确保您选择的委托被授权的权限包含"functiongraph:function:invoke\*"。  - 如无委托，可单击旁边的"创建委托"进行创建，将会创建名为"EG_TARGET_AGENCY"委托。                                                                                                                                      |
        | 规则配置   | 类型                  | EG将CloudEvents标准事件转换成事件目标可以接受的事件类型。支持以下三种转换类型： - **透传：**EG不对事件进行转换，将CloudEvents标准事件直接路由到事件目标。  - **变量：** 从CloudEvents标准事件中获取变量值，将变量值路由到事件目标。 - 参数：需要转换的参数。  - 模板：自定义一个包含所需变量的模板，EG按照模板定义的形式进行转换。    - **常量：**事件只能触发事件目标，但是不会传送事件内容到事件目标，EG将您设置的常量路由到事件目标。   如果需要了解更多转换类型的信息，请参考[事件内容转换](https://support.huaweicloud.com/usermanual-eg/eg-ug-020.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
        | 死信配置   | 启用死信队列              | 启用死信队列后EG会把处理失败的事件发送到配置的队列中，若不启用则处理失败的事件将被丢弃。了解更多详情请参考[死信队列](https://support.huaweicloud.com/usermanual-eg/eg-ug-066.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
           
        
      
      - 当事件目标提供方选择"**自定义** "，即您自定义的事件目标作为事件目标提供方。设置如下参数：
        表6事件目标提供方选择"**自定义** " 
        | 参数名称  | 子参数    | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
        |:---|:---|:---|
        | URL配置 | URL配置  | 自定义的事件目标URL，通过配置的此URL来消费事件。 URL配置必须是以"http://"或"https://"开头的事件目标的URL，且必须是POST接口方式。 事件推送到自定义事件目标超时时间默认为9秒，超过9秒则推送失败。 HTTP协议存在较高安全风险，可能导致数据被窃听或篡改。为了确保数据安全，强烈建议使用HTTPS协议。若您必须使用HTTP，请确保自定义事件中不包含任何敏感信息，所有相关风险需自行承担。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
        | URL配置 | 目标连接   | 您可以通过对应虚拟私有云和子网的目标连接来连接私网webhook。详情请参见[目标连接](https://support.huaweicloud.com/usermanual-eg/eg-ug-033.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
        | 请求参数  | 请求头参数  | 请求URL时，可以设置请求头参数。 请求头参数设置包含请求头参数名称、参数值、是否加密。 图4请求头参数 ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000002417218589.png) - key（请求头）：由大小写英文字母和中划线组成，且必须以大小写字母开头和结尾，最大长度256个字符。  - value：由大小写英文字符、中划线、下划线、空格和特殊字符"\~!@#$%\^\&\*()=+\|\[{}\];:'",\<.\>/?"组成，最大长度1024个字符。   说明： 当请求头和值校验不通过时，是否加密选项置灰无法选择。                                                                                                                                                                                                                                                                                                                |
        | 规则配置  | 类型     | EG将CloudEvents标准事件转换成事件目标可以接受的事件类型。支持以下三种转换类型： - **透传：**EG不对事件进行转换，将CloudEvents标准事件直接路由到事件目标。  - **变量：** 从CloudEvents标准事件中获取变量值，将变量值路由到事件目标。 - 参数：需要转换的参数。  - 模板：自定义一个包含所需变量的模板，EG按照模板定义的形式进行转换。    - **常量：**事件只能触发事件目标，但是不会传送事件内容到事件目标，EG将您设置的常量路由到事件目标。   如果需要了解更多转换类型的信息，请参考[事件内容转换](https://support.huaweicloud.com/usermanual-eg/eg-ug-020.html)。 |
        | 死信配置  | 启用死信队列 | 启用死信队列后EG会把处理失败的事件发送到配置的队列中，若不启用则处理失败的事件将被丢弃。了解更多详情请参考[死信队列](https://support.huaweicloud.com/usermanual-eg/eg-ug-066.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
           
        
       
   
   3. 单击"确定"，完成事件目标的配置。
   
   
   
   
9. 单击页面右上角的"保存"，完成事件订阅配置。 
   事件订阅创建成功后，可以在事件订阅列表中查看到所创建的订阅，且订阅状态默认为"启用"。
   图5查看创建的事件订阅   
   ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000002383499452.png "点击放大")
   
   
 
#### 禁用或启用、修改、删除EG通知
OBS支持通过[控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)方式禁用或启用、修改、删除EG通知，不支持通过API、SDK、OBS Browser+、obsutil方式禁用或启用、修改、删除EG通知。
#### 使用OBS控制台
1. 在OBS[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)左侧导航栏选择"桶列表"。
2. 在桶列表中，单击待操作的桶，进入"对象"页面。
3. 在左侧列表页选择"数据管理 \> 事件通知"，进入"EG通知"页签。
4. 单击待编辑的EG通知操作列的"前往EG控制台"，进入EG控制台的对应事件订阅编辑页面。 
   - **禁用或启用事件订阅**
     1. 单击页面右上角的"禁用"或"启用"按钮。
     
     2. 单击"保存"。 可以看到事件订阅列表中，对应订阅的状态为"禁用"或"启用"。
        
      
   
   - **修改事件订阅** ：请参考[5]修改事件订阅的名称和描述、事件源、事件目标。
     **暂不支持修改事件订阅所属的企业项目。**
     
   
   - **删除事件订阅**
     1. 单击页面右上角的"删除"按钮。
     
     2. 在"删除事件订阅"弹窗，单击"一键输入"，由系统自动输入"DELETE"。
     
     3. 单击"确定"。 在事件订阅列表中，找不到已删除的订阅，即表示删除成功。
        
     
     
     ![](https://support.huaweicloud.com/usermanual-obs/public_sys-resources/caution_3.0-zh-cn.png)
     事件订阅删除后无法恢复，请谨慎操作。
     
   
   
   
   
 
#### 导出EG通知
OBS支持通过[控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)方式导出EG通知，不支持通过API、SDK、OBS Browser+、obsutil方式导出EG通知。
#### 使用OBS控制台
1. 在OBS[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)左侧导航栏选择"桶列表"。
2. 在桶列表中，单击待操作的桶，进入"对象"页面。
3. 在左侧列表页选择"数据管理 \> 事件通知"，进入"EG通知"页签。
4. 单击"导出\>导出全部数据到XLSX"，导出全部EG通知。 
   在导出表格中可以查看通知名称、EG订阅名称、事件、前缀、后缀、EG通道、对象名编码、OBS消息格式。
   
   
 
#### 相关文档
- 关于OBS结合EG通知的使用实践案例，请参见[结合EG事件通知自动处理OBS桶中的图片](https://support.huaweicloud.com/bestpractice-obs/obs_05_2217.html)。
- [为什么删除对象没有触发EG事件通知？](https://support.huaweicloud.com/obs_faq/obs_faq_121402.html)
- 更多关于事件网格的内容，请参见[事件网格 EG](https://support.huaweicloud.com/eg/index.html)。
 
