更新时间:2024-10-21 GMT+08:00
分享

创建事件订阅

事件订阅将事件源、事件通道和事件目标绑定在一起,通过事件规则将事件源发出的事件路由到事件目标。

一个订阅最多关联五个事件目标。

前提条件

  • (可选)已创建自定义事件源
  • 已设置事件目标。
  • 已创建企业项目,如何创建请参见管理项目和企业项目
    • 非企业用户和企业项目只有“default”时,该选项不显示。
    • 拥有多个企业项目时,默认选择“default”。

操作步骤

  1. 登录事件网格控制台。
  2. 在左侧导航栏选择“事件订阅”,进入“事件订阅”页面。
  3. 单击“创建事件订阅”,进入订阅详情页。
  4. 单击订阅名称旁的,弹出“修改订阅”弹窗。
  5. 输入订阅名称和描述信息,单击“确定”,完成订阅名称和描述信息输入。
  6. 企业用户请选择“企业项目”,单击“查看企业项目”可查看企业项目清单。

    图1 选择企业项目

  7. 配置事件源。

    1. 单击“事件源”,如图2所示,弹出“事件源”对话框。
      图2 配置事件源
    2. 选择事件源提供方。
      • 华为云:华为云服务事件源作为事件源提供方。
      • 自定义:您自定义的事件源作为事件源提供方。
    3. 设置事件源参数。
      当提供方为“华为云”时,设置如表1所示参数。
      表1 云服务事件源参数说明

      参数名称

      说明

      事件源

      选择云服务事件源。

      事件类型(可选)

      选择事件网格预定义的事件类型。

      过滤规则

      输入事件过滤规则。

      事件源产生的事件与过滤规则进行匹配,匹配成功后事件才会被路由到与过滤规则关联的事件目标。如果需要了解更多过滤规则的信息,请参考过滤规则参数说明过滤规则示例

      图3 云服务事件源配置参数

      如果“事件源”选择“OBS应用事件源”,请参考表2

      表2 OBS应用事件源参数说明

      参数名称

      说明

      事件源

      选择事件源。

      选择OBS桶。

      事件类型

      指定事件类型进行过滤。

      对象名前缀

      输入过滤前缀。

      对象名后缀

      输入过滤后缀。

      对象名编码

      开启后OBS会对事件的对象名进行编码。

      过滤规则

      输入事件过滤规则。

      事件源产生的事件与过滤规则进行匹配,匹配成功后事件才会被路由到与过滤规则关联的事件目标。如果需要了解更多过滤规则的信息,请参考过滤规则参数说明过滤规则示例

      如果“事件源”选择“OBS应用事件源”,需用户的华为云账号添加“Tenant Administrator”权限,如何授权请参见依赖角色的授权方法

      当提供方为“自定义”时,设置如表3所示参数。
      表3 自定义事件源参数说明

      参数名称

      说明

      通道配置

      配置类型

      支持以下两种类型:

      • 选择:选择一个已创建的自定义事件通道。
      • 新建:创建一个新的自定义事件通道。

      通道

      • “配置类型”为“选择”时,在下拉列表中选择一个已创建的自定义事件通道,例如:channel。
      • “配置类型”为“新建”时,输入事件通道名称。

      描述(可选)

      仅在“配置类型”为“新建”时,需要设置此参数。

      输入自定义事件通道的描述信息。

      事件源配置

      配置类型

      支持以下两种类型:

      • 选择:选择一个已创建的自定义事件源。
      • 新建:创建一个新的自定义事件源。

      事件源

      • “配置类型”为“选择”时,在下拉列表中选择一个已关联自定义事件通道(即“通道配置”中选择的自定义通道,例如:channel)的自定义事件源。
      • “配置类型”为“新建”时,输入自定义事件源名称。

      描述

      仅在“配置类型”为“新建”时,需要设置此参数。

      输入自定义事件源的描述信息。

      过滤规则

      输入事件过滤规则。

      事件源产生的事件与过滤规则进行匹配,匹配成功后事件才会被路由到与过滤规则关联的事件目标。如果需要了解更多过滤规则的信息,请参考过滤规则参数说明过滤规则示例

      图4 自定义事件源配置参数

    4. 单击“确定”,完成事件源的配置。

  8. 配置事件目标。

    一个订阅最多关联五个事件目标。

    1. 单击“事件目标”,如图5所示,弹出“事件目标”对话框。
      图5 配置事件目标
    2. 选择事件目标提供方。
      • 华为云:华为云服务作为事件目标提供方。
      • 自定义:您自定义的事件目标作为事件源提供方。
    3. 设置事件目标参数。
      当提供方为“华为云”时,设置如下参数。
      • 事件目标:选择事件目标。

        当事件目标配置为“FunctionGraph(函数计算)”时:

        • 函数:选择需要触发的函数。如果还未创建函数,请先创建函数
        • 版本/别名:配置版本/别名,当选择其一时,则另外一个参数无需配置。
        • 版本:选择函数的版本。当前默认选择“latest”。
        • 别名:选择函数的别名。
        • 执行方式:选择异步或同步。

          请求函数调用的方式,默认采用异步执行。

          异步:异步执行指的是函数调用请求发送后不等待函数调用结果。

          同步:同步执行指的是函数调用请求需要明确等到响应结果,也就是说这样的请求必须得调用到用户的函数,并且等到调用完成才返回。

        • 委托:选择委托。如无委托,可单击旁边的“创建委托”进行创建,将会创建名为“EG_TARGET_AGENCY”委托。
          1. 只会查询出被委托方是事件网格服务的委托。
          2. 请确保您选择的委托已被授权的权限包含functiongraph:function:invoke*。

        当事件目标选择“分布式消息服务 Kafka版”时:

        • 目标连接:选择目标连接,需要提前创建分布式消息服务Kafka版目标连接
        • Topic:选择消息Topic,需要提前创建。
        • 启用消息Key:是否启用消息key。
        • 类型:消息Key的转换类型。支持以下两种转换类型:
          • 变量:从CloudEvents标准事件中获取变量值,将变量值作为Key值。
          • 常量:将指定的常量作为key值。若选择常量,所有消息将发送至同一分区。

          如果需要了解更多转换类型的信息,请参考事件内容转换

        当事件目标选择“事件网格EG”时:

        同一个事件在EG通道内传递的次数不能超过三次。

        • 目标类型:选择同账号或跨账号。具体参数配置如下表所示:
          表4 目标类型参数配置说明

          同账号

          跨账号

          说明

          区域

          区域

          华北-北京四、上海一、上海二、华南广州。

          说明:

          暂不支持选择其他区域。

          项目ID

          项目ID

          请输入目标通道的项目ID。

          说明:

          项目ID必须与目标通道所属项目ID保持一致,否则会导致事件无法发布至目标通道。

          项目ID可以在对应账号的“我的凭证”中获取到。

          通道

          通道

          请输入目标通道ID。

          说明:

          同账号同区域时支持选择当前账号下的通道,跨账号时需要您输入通道ID。

          同账号下是下拉列表选择通道,且不能选择同一通道和default通道。

          跨账号输入ID时不能输入同一通道ID和default通道ID,否则事件不通。

          如果当前通道没有关联订阅,发布到该通道的消息将无法消费,所以需要新增订阅,下游事件订阅的事件源和上游订阅的事件源名称保持一致,且下游的事件源必须是自定义事件源。

          委托

          委托

          请选择委托。

          说明:

          选择委托。如无委托,可单击旁边的“创建委托”进行创建,将会创建名为“EG_TARGET_AGENCY”委托。

          只会查询出被委托方是事件网格服务的委托。

          请确保您选择的委托被授权的权限包含eg:channels:putEvents。

          规则配置:

        • 类型:事件网格将CloudEvents标准事件转换成事件目标可以接受的事件类型:
          • 透传:事件网格不对事件进行转换,将CloudEvents标准事件直接路由到事件目标。

          如果需要了解更多转换类型的信息,请参考事件内容转换

        当事件目标选择“消息通知SMN”时:

        • 主题:选择消息通知主题,需要提前创建。
        • 委托:选择委托。如无委托,请先创建委托,将会创建名为“EG_SMN_PUBLISHER_AGENCY”委托。
          • 只会查询出被委托方是事件网格服务的委托。
          • 请确保您选择的委托已被授权的权限包含“smn:topic:publish”。
        • 消息标题配置:“类型”配置为“常量”或“变量”。
        • 类型:消息标题的类型。支持以下两种类型。
          • 常量:将指定的常量作为消息标题。若选择常量,所有消息的消息标题都是相同的。
          • 变量:从CloudEvents标准事件中获取变量值,将变量值代入模板中作为消息标题,如果生成的消息标题超长则会截取前512个字符。

            消息标题配置非必填项,可选择填写。

        规则配置:

      • 类型:事件网格将CloudEvents标准事件转换成事件目标可以接受的事件类型。支持以下三种转换类型:
        • 透传:事件网格不对事件进行转换,将CloudEvents标准事件直接路由到事件目标。
        • 变量:从CloudEvents标准事件中获取变量值,将变量值路由到事件目标。
        • 常量:事件只能触发事件目标,但是不会传送事件内容到事件目标,事件网格将您设置的常量路由到事件目标。

        如果需要了解更多转换类型的信息,请参考事件内容转换

      图6 华为云事件目标配置参数
      当提供方为“自定义”时,设置如下参数。
      • URL配置:输入https://开头的事件目标的URL,必须是POST接口方式。
        表5 事件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":""
      • 目标连接:选择已创建好的目标连接或默认连接,了解更多详情请参考目标连接
      • 请求头参数:
        • 请输入请求头。
        • 请输入值。
        • 选择是否加密
          图7 请求头参数
          • 针对HTTPS类型的自定义事件,对事件目标端增加授权配置,以提高安全性。
          • 当请求头和值校验不通过时,是否加密选项置灰无法选择。
          • key(请求头):由大小写英文字母和中划线组成,且必须以大小写字母开头和结尾,最大长度256个字符。
          • value:由大小写英文字符、中划线、下划线、空格和特殊字符“~!@#$%^&*()=+|[{}];:'",<.>/?”组成,最大长度1024个字符。
      • 类型:事件网格将CloudEvents标准事件转换成事件目标可以接受的事件类型。支持以下三种转换类型:
        • 透传:事件网格不对事件进行转换,将CloudEvents标准事件直接路由到事件目标。
        • 变量:从CloudEvents标准事件中获取变量值,将变量值路由到事件目标。
        • 常量:事件只能触发事件目标,但是不会传送事件内容到事件目标,事件网格将您设置的常量路由到事件目标。

        如果需要了解更多转换类型的信息,请参考事件内容转换

      • 启用死信队列:默认不启用。启用死信队列后EG会把处理失败的事件发送到配置的队列中,若不启用则处理失败的事件将被丢弃。了解更多详情请参考死信队列
      图8 自定义事件目标配置参数
    4. 单击“确定”,完成事件目标的配置。

  9. 单击“保存”,完成订阅的配置。

    订阅创建成功后,订阅状态默认为“启用”。

相关文档