事件网格 EG-事件内容转换:其他示例

时间:2025-02-12 15:03:24

其他示例

  1. 在创建事件订阅-配置事件源为“分布式消息服务RabbitMQ版”或“分布式消息服务RocketMQ版”,消息转换为CloudEvents格式事件后,data字段下将包含context字段,在创建事件订阅-配置事件目标,规则类型配置为“变量”时,规则必须包含context字段,示例如下:

    转换前的事件

    转换类型

    转换后的事件

    {    "type": "ROCKETMQ:CloudTrace:RocketmqCall",    "data": {        "context": {    "name": "test01","state": "enable"         }    },    "source": "zhang_roc",    "time": "2023-02-01T10:47:07Z",    "datacontenttype": "application/json",    "specversion": "1.0",    "id": "2f885496-570c-4925-82fd-d1ad09******",    "subject": "ROCKETMQ:cn-north-7:eec88b34-9470-483e-8961-edb168******/0de095e33e00d36e2fd2c0019a******:ROCKETMQ:zhang_roc"}

    参数

    {"name":"$.data.context.name"}

    模板

    My name is ${name}
    My name is test01
  2. 在创建事件订阅-配置事件目标,事件目标配置为“FunctionGraph(函数计算)”时,若内容转换规则配置为“透传”,无法将事件内容作为输入值传递至事件目标。如需将事件内容作为函数流输入值,可以通过“变量”或“常量”的内容转换规则,规则必须包含input字段,示例如下:
    表1 变量示例

    转换前的事件

    规则配置

    转换后的事件

    {    "events":[{"id": "4b26115b-73cf74a******",        "specversion": "1.0","source": "HC.OBS","type": "object:put","datacontenttype": "application/json","subject": "xxx.jpg","time": "2022-01-17T12:07:48.955Z","data": {"name": "test01","state": "enable"}    }]}

    变量

    {"data": "$.data"}

    模板

    {"input": ${data}}

    {"input": {"name": "test01","state": "enable"}}
    表2 常量示例

    转换前的事件

    规则配置

    转换后的事件

    {    "events":[{"id": "4b26115b-73cf74a******",        "specversion": "1.0","source": "HC.OBS","type": "object:put","datacontenttype": "application/json","subject": "xxx.jpg","time": "2022-01-17T12:07:48.955Z","data": {"name": "test01","state": "enable"}    }]}

    常量

    {"input": {"name": "test01"}}
    {"input": {"name": "test01"}}
support.huaweicloud.com/usermanual-eg/eg-ug-020.html