更新时间:2024-08-09 GMT+08:00

创建事件订阅

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

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

前提条件

操作步骤

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

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

      参数名称

      说明

      事件源

      选择云服务事件源。

      事件类型(可选)

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

      过滤规则

      输入事件过滤规则。

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

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

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

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

      参数名称

      说明

      事件源

      选择事件源。

      选择OBS桶。

      事件类型

      指定事件类型进行过滤。

      对象名前缀

      输入过滤前缀。

      对象名后缀

      输入过滤后缀。

      对象名编码

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

      过滤规则

      输入事件过滤规则。

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

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

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

      参数名称

      说明

      通道配置

      配置类型

      支持以下两种类型:

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

      通道

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

      描述(可选)

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

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

      事件源配置

      配置类型

      支持以下两种类型:

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

      事件源

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

      描述

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

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

      过滤规则

      输入事件过滤规则。

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

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

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

  7. 配置事件目标。

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

    1. 单击“事件目标”,如图4所示,弹出“事件目标”对话框。
      图4 配置事件目标
    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标准事件中获取变量值,将变量值路由到事件目标。
        • 常量:事件只能触发事件目标,但是不会传送事件内容到事件目标,事件网格将您设置的常量路由到事件目标。

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

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

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

      图7 自定义事件目标配置参数
    4. 单击“确定”,完成事件目标的配置。

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

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