14.4. 带有 JSONata 的 JSON 事件转换
JSONata 是 JSON 数据的轻量级查询和转换语言。在 Knative EventTransform 中,JSONata 表达式提供了一种重要的方法来重塑事件。您可以使用它们从事件数据中提取值,将特定字段提升到 CloudEvent 属性,重新构建整个有效负载,添加计算值,甚至应用条件逻辑来控制事件的转换方式。
您可以在 EventTransform 资源的 spec.jsonata.expression 字段中指定 JSONata 表达式。表达式将传入的 CloudEvent 映射到新的 CloudEvent 中,如下例所示:
使用 JSONata 的简单事件转换示例
14.4.1. JSONata 中的 CloudEvent 结构 复制链接链接已复制到粘贴板!
当您在 EventTransform 中使用 JSONata 时,对表达式的输入是完整的 CloudEvent 对象,其中包括所有标准属性和事件有效负载。
JSONata 表达式的输出必须生成有效的 CloudEvent。至少,需要以下字段才能确保符合 CloudEvents 规格:
| 字段 | 要求 | 描述 |
|---|---|---|
|
|
必须是 | 标识 CloudEvents 规格版本。 |
|
| 唯一字符串 | 用作事件的唯一标识符。 |
|
| 必需 |
表示事件类型,如 |
|
| 必需 | 标识发生事件的上下文。 |
|
| 必需 | 包含正在交付的事件有效负载。 |
通过在 JSONata 表达式中显式构建这些字段,您可以确保转换的事件在根据需要仍然应用重塑、增强或条件逻辑的同时有效。