
# 创建事件订阅
事件订阅将事件源、事件通道和事件目标绑定在一起，通过事件规则将事件源发出的事件路由到事件目标。
#### 约束与限制
- 一个订阅最多关联五个事件目标。
- 事件目标投递失败时，默认支持重试16次。
- 同一个事件在EG通道内传递的次数不能超过三次。
- 不支持跨账号的能力使用事件订阅功能。
 
#### 前提条件
- （可选）已[创建自定义事件源](https://support.huaweicloud.com/usermanual-eg/eg-ug-039.html#eg-ug-039__section126627100189)。
- 已设置事件目标。
- 已创建企业项目，如何创建请参见[管理项目和企业项目](https://support.huaweicloud.com/usermanual-eg/eg-ug-103.html)。
  - 非企业用户和企业项目只有"default"时，该选项不显示。
  
  - 拥有多个企业项目时，默认选择"default"。
    
   
 
#### 操作步骤
1. 登录[事件网格控制台](https://console.huaweicloud.com/egs)。
2. 在左侧导航栏选择"事件订阅"，进入"事件订阅"页面。
3. 单击"创建事件订阅"，进入订阅详情页。
4. 单击订阅名称旁的![](https://support.huaweicloud.com/usermanual-eg/zh-cn_image_0000001497950218.png)，弹出"修改订阅"弹窗。
5. 输入订阅名称和描述信息，单击"确定"，完成订阅名称和描述信息输入。
6. 企业用户请选择"企业项目"，单击"查看企业项目"可查看企业项目清单。
7. 配置事件源。
   
   1. 单击"事件源"，如[图1]所示，弹出"事件源"对话框。
      图1配置事件源   
      ![](https://support.huaweicloud.com/usermanual-eg/zh-cn_image_0000001226839818.png "点击放大") 
   
   2. 选择事件源提供方。
      - 云服务：云服务事件源作为事件源提供方。
      
      - 自定义：您自定义的事件源作为事件源提供方。
       
   
   3. 设置事件源参数。
      **当提供方为"云服务"时，设置如[表1]所示参数。**
       表1云服务事件源参数说明 
      | 参数名称     | 说明                                                                                                                                                                                                                                                     |
      |:---|:---|
      | 事件源      | 选择云服务事件源。                                                                                                                                                                                                                                              |
      | 事件类型（可选） | 选择事件网格预定义的事件类型。                                                                                                                                                                                                                                        |
      | 过滤规则     | 输入事件过滤规则。 事件源产生的事件与过滤规则进行匹配，匹配成功后事件才会被路由到与过滤规则关联的事件目标。如果需要了解更多过滤规则的信息，请参考[过滤规则参数说明](https://support.huaweicloud.com/usermanual-eg/eg-ug-018.html)和[过滤规则示例](https://support.huaweicloud.com/usermanual-eg/eg-ug-019.html)。 |
         
      图2云服务事件源配置参数   
      ![](https://support.huaweicloud.com/usermanual-eg/zh-cn_image_0000002109405154.png "点击放大")
      如果"事件源"选择"OBS应用事件源"，请参考[表2]。同时，需用户的华为云账号添加"Tenant Administrator"权限，如何授权请参见[依赖角色的授权方法](https://support.huaweicloud.com/usermanual-iam/iam_01_0657.html)。
       表2OBS应用事件源参数说明 
      | 参数名称  | 说明                                                                                                                                                                                                                                                  |
      |:---|:---|
      | 事件源   | 选择事件源。                                                                                                                                                                                                                                              |
      | 桶     | 选择OBS桶。                                                                                                                                                                                                                                             |
      | 事件类型  | 指定事件类型进行过滤。                                                                                                                                                                                                                                         |
      | 对象名前缀 | 输入过滤前缀。                                                                                                                                                                                                                                             |
      | 对象名后缀 | 输入过滤后缀。                                                                                                                                                                                                                                             |
      | 对象名编码 | 开启后OBS会对事件的对象名进行编码。                                                                                                                                                                                                                                 |
      | 过滤规则  | 输入事件过滤规则。 事件源产生的事件与过滤规则进行匹配，匹配成功后事件才会被路由到与过滤规则关联的事件目标。如果需要了解更多过滤规则的信息，请参考[过滤规则参数说明](https://support.huaweicloud.com/usermanual-eg/eg-ug-018.html)和[过滤规则示例](https://support.huaweicloud.com/usermanual-eg/eg-ug-019.html)。 |
         
      **当提供方为"自定义"时，设置如[表3]所示参数。**
       表3自定义事件源参数说明 
      | 参数名称 | 说明                                                                                                                                                                                                                                                   |
      |:---|:---|
      | 通道   | 在下拉列表中选择一个已创建的自定义事件通道，例如：channel。                                                                                                                                                                                                                    |
      | 事件源  | 输入或选择一个已关联自定义事件通道（即"通道配置"中选择的自定义通道，例如：channel）的自定义事件源。                                                                                                                                                                                               |
      | 过滤规则 | 输入事件过滤规则。 事件源产生的事件与过滤规则进行匹配，匹配成功后事件才会被路由到与过滤规则关联的事件目标。如果需要了解更多过滤规则的信息，请参考[过滤规则参数说明](https://support.huaweicloud.com/usermanual-eg/eg-ug-018.html)和[过滤规则示例](https://support.huaweicloud.com/usermanual-eg/eg-ug-019.html)。 |
         
      图3自定义事件源配置参数   
      ![](https://support.huaweicloud.com/usermanual-eg/zh-cn_image_0000002109427152.png "点击放大") 
   
   4. 单击"确定"，完成事件源的配置。
   
   
   
   
8. 配置事件目标。
   
   1. 单击"事件目标"，如[图4]所示，弹出"事件目标"对话框。
      图4配置事件目标   
      ![](https://support.huaweicloud.com/usermanual-eg/zh-cn_image_0000001226679966.png "点击放大") 
   
   2. 选择事件目标提供方。
      - 云服务：云服务作为事件目标提供方。
      
      - 自定义：您自定义的事件目标作为事件源提供方。
       
   
   3. 设置事件目标参数。
      **当提供方为"云服务"时，设置如下参数。**
      - 事件目标：选择事件目标。 **当事件目标配置为"FunctionGraph（函数计算）"时：**
        - 函数：选择需要触发的函数。如果还未创建函数，请先[创建函数](https://support.huaweicloud.com/usermanual-functiongraph/functiongraph_01_1441.html)。
        
        - 版本/别名：配置版本/别名，当选择其一时，则另外一个参数无需配置。
        
        - 版本：选择函数的版本。当前默认选择"latest"。
        
        - 别名：选择函数的别名。
        
        - 执行方式：选择异步或同步。
          ![](https://support.huaweicloud.com/usermanual-eg/public_sys-resources/note_3.0-zh-cn.png)
          请求函数调用的方式，默认采用异步执行。
          异步：异步执行指的是函数调用请求发送后不等待函数调用结果。
          同步：同步执行指的是函数调用请求需要明确等到响应结果，也就是说这样的请求必须得调用到用户的函数，并且等到调用完成才返回。
          
        
        - 委托：选择委托。如无委托，可单击旁边的"创建委托"进行创建，将会创建名为"EG_TARGET_AGENCY"委托。
          1. 只会查询出被委托方是事件网格服务的委托。
          
          2. 请确保您选择的委托已被授权的权限包含functiongraph:function:invoke\*。
           
        
        
        **当事件目标选择"分布式消息服务 Kafka版"时：**
        - 目标连接：选择目标连接，需要提前[创建目标连接](https://support.huaweicloud.com/usermanual-eg/eg-ug-033.html)。
        
        - Topic：选择消息Topic，需要提前创建。
        
        - 启用消息Key：是否启用消息key。
        
        - 类型：消息Key的转换类型。支持以下两种转换类型：
          - 变量：从CloudEvents标准事件中获取变量值，将变量值作为Key值。
          
          - 常量：将指定的常量作为key值。若选择常量，所有消息将发送至同一分区。
          
          
          如果需要了解更多转换类型的信息，请参考[事件内容转换](https://support.huaweicloud.com/usermanual-eg/eg-ug-020.html)。
          
        
        
        **当事件目标选择"云服务接口"时：**
        - 云服务：选择云服务。
        
        - 接口：选择云服务接口，并配置对应接口信息。
        
        - 委托：选择已经创建的委托。
        
        
        **当事件目标选择"消息通知SMN"时：**
        - 主题：选择消息通知主题，需要提前创建。
        
        - 委托：选择委托。如无委托，请先创建委托，将会创建名为"EG_SMN_PUBLISHER_AGENCY"的委托。
          - 只会查询出被委托方是事件网格服务的委托。
          
          - 请确保您选择的委托已被授权的权限包含"smn:topic:publish"。
           
        
        - 消息标题配置："类型"配置为"常量"或"变量"。
        
        - 类型：消息标题的类型。支持以下两种类型。
          - 常量：将指定的常量作为消息标题。若选择常量，所有消息的消息标题都是相同的。
          
          - 变量：从CloudEvents标准事件中获取变量值，将变量值代入模板中作为消息标题，如果生成的消息标题超长则会截取前512个字符。
            ![](https://support.huaweicloud.com/usermanual-eg/public_sys-resources/note_3.0-zh-cn.png)
            消息标题配置非必填项，可选择填写。
            
           
        
        
        **规则配置：**
        
      
      - 类型：事件网格将CloudEvents标准事件转换成事件目标可以接受的事件类型。支持以下三种转换类型：
        - 透传：事件网格不对事件进行转换，将CloudEvents标准事件直接路由到事件目标。
        
        - 变量：从CloudEvents标准事件中获取变量值，将变量值路由到事件目标。
        
        - 常量：事件只会触发事件目标，但是不会传送事件内容到事件目标，事件网格将您设置的常量路由到事件目标。
        
        
        如果需要了解更多转换类型的信息，请参考[事件内容转换](https://support.huaweicloud.com/usermanual-eg/eg-ug-020.html)。
        
      
      
      图5云服务事件目标配置参数   
      ![](https://support.huaweicloud.com/usermanual-eg/zh-cn_image_0000001507605353.png "点击放大")
      **当提供方为"自定义"时，设置如下参数。**
      - URL配置：请输入http://开头或者https://开头的事件目标的URL，必须是POST接口方式。
        ![](https://support.huaweicloud.com/usermanual-eg/public_sys-resources/note_3.0-zh-cn.png)
        事件推送到自定义事件目标的超时时间默认为9秒，超过9秒则推送失败。
        HTTP协议存在较高安全风险，可能导致数据被窃听或篡改。为了确保数据安全，强烈建议使用HTTPS协议。若您必须使用HTTP，请确保自定义事件中不包含任何敏感信息，所有相关风险需自行承担。
        表4事件Body参数 
        | 参数              | 是否必选 | 参数类型                  | 描述     |
        |:---|:---|:---|:---|
        | datacontenttype | 否    | String                | 数据内容类型 |
        | data            | 是    | Array of Data objects | 数据     |
        | subject         | 否    | String                | 主题     |
        | specversion     | 否    | String                | 规格版本   |
        | id              | 是    | String                | Id     |
        | source          | 是    | String                | 事件源    |
        | time            | 是    | String                | 时间     |
        | type            | 是    | String                | 事件类型   |
        | ttl             | 是    | String                | 超时时间   |
        | dataschema      | 否    | String                | 数据结构   |
           
        事件Body体示例如下（以"OBS应用事件源"为例）：
        ```
        "datacontenttype":"application/json",
        "data":
        {
          "obs":{
                    "bucket":{
                                    "bucket":"bucket-input-my",
                                    "name":"bucket-input-my",
                                    "arn":"",
                                    "ownerIdentity":{"ID":"f9e40463cxxxxxxxx9efd3a7ec854e"}
                                  },
                    "Version":"1.0",
                    "configurationId":"a6b0bcf8-8874-4d8b-84f5-f9068527930f",
                    "object":{
                                    "versionId":"G00101928EE6072DFFFFD28824BB4AB8null",
                                    "oldpsxpth":"",
                                  "size":10,
                                    "eTag":"c9b20f7d442e65ede148e006dfe1308c",
                                    "key":"\xe4\xba\x8b\xe4\xbb\xxx\xxx\xxx\xxx\xxx\xxx\x85\xe6\xb5\x8b\xe8\xaf\x951015-2.txt",
                                    "sequencer":"1"
                                  }
                    },
          "eventVersion":"3.0",
          "responseElements":{
                                    "x-obs-id-2":"",
                                    "x-obs-request-id":"3f905af2683e6ed7dbaec881b66390ab",
                                    "x-amz-request-id":"",
                                    "x-amz-id-2":""
                                  },
          "eventSource":"OBS",
          "eventTime":"2024-10-15T14:38:12.781Z",
          "requestParameters":{
                                    "sourceIPAddress":"xx.xx.xx.xx"
                                  },
          "eventName":"ObjectCreated:Put",
          "eventRegion":"cn-north-4",
          "userIdentity":{
                                "ID":"f9e40463c23xxxxxxxxefd3a7ec854e"
                              }
        },
        "subject":"\xe4\xba\x8b\xe4\xbb\xxx\xxx\xxx\xxx\xxx\xxx\xxx\xe6\xb5\x8b\xe8\xaf\x951015-2.txt",
        "specversion":"1.0",
        "id":"3f905af2683e6ed7dbaec881b66390ab",
        "source":"HC.OBS.DWR",
        "time":"2024-10-15T06:38:13.52240464Z",
        "type":"OBS:DWR:ObjectCreated:PUT",
        "ttl":"4000","dataschema":""
        ```
        
      
      - 目标连接：选择已创建好的目标连接或默认连接，了解更多详情请参考[目标连接](https://support.huaweicloud.com/usermanual-eg/eg-ug-033.html)。
      
      - 请求头参数：
        - 请输入请求头。
        
        - 请输入值。
        
        - 选择是否加密
          图6请求头参数   
          ![](https://support.huaweicloud.com/usermanual-eg/zh-cn_image_0000001638943660.png "点击放大")
          ![](https://support.huaweicloud.com/usermanual-eg/public_sys-resources/note_3.0-zh-cn.png)
          - 针对HTTPS类型的自定义事件，对事件目标端增加授权配置，以提高安全性。
          
          - 当请求头和值校验不通过时，是否加密选项置灰无法选择。
          
          - key（请求头）：由大小写英文字母和中划线组成，且必须以大小写字母开头和结尾，最大长度256个字符。
          
          - value：由大小写英文字符、中划线、下划线、空格和特殊字符"\~!@#$%\^\&\*()=+\|\[{}\];:'",\<.\>/?"组成，最大长度1024个字符。
            
         
      
      - 类型：事件网格将CloudEvents标准事件转换成事件目标可以接受的事件类型。支持以下三种转换类型：
        - 透传：事件网格不对事件进行转换，将CloudEvents标准事件直接路由到事件目标。
        
        - 变量：从CloudEvents标准事件中获取变量值，将变量值路由到事件目标。
        
        - 常量：事件只能触发事件目标，但是不会传送事件内容到事件目标，事件网格将您设置的常量路由到事件目标。
        
        
        如果需要了解更多转换类型的信息，请参考[事件内容转换](https://support.huaweicloud.com/usermanual-eg/eg-ug-020.html)。
        
      
      - 启用死信队列：默认不启用。启用死信队列后EG会把处理失败的事件发送到配置的队列中，若不启用则处理失败的事件将被丢弃。了解更多详情请参考[死信队列](https://support.huaweicloud.com/usermanual-eg/eg-ug-066.html)。
      
      
      图7自定义事件目标配置参数   
      ![](https://support.huaweicloud.com/usermanual-eg/zh-cn_image_0000001308087896.png "点击放大") 
   
   4. 单击"确定"，完成事件目标的配置。
   
   
   
   
9. 单击"保存"，完成订阅的配置。 
   订阅创建成功后，订阅状态默认为"启用"。
   
   
 
