开发者社区 > 云原生 > 中间件 > 正文

EventBridge中,比如$.data.source_url, 如果source_url不存在?

EventBridge中,比如$.data.source_url, 如果source_url不存在,模版会渲染成啥?是默认没有直接提取$.data里面的内容,作为json投递到sls吗?

展开
收起
真的很搞笑 2024-01-11 14:10:52 51 0
3 条回答
写回答
取消 提交回答
  • 在阿里云EventBridge中,如果事件payload中的$.data.source_url不存在,那么在事件投递至SLS(Log Service,日志服务)或其他目标时,该字段在JSON中会表现为null或者直接忽略(不包含在投递的JSON内容中)。模板不会为此类缺失的字段填充默认值,而是如实反映事件原始内容。

    举个例子,如果事件数据如下:

    {
      "id": "event-id",
      "source": "/my/source",
      "type": "my.event.type",
      "time": "2022-01-01T00:00:00Z",
      "data": {
        // 如果source_url不存在,则这里没有source_url字段
        // "source_url": "https://example.com"
      }
    }
    

    当此事件被投递到SLS或其他目标时,接收方会接收到不含source_url字段的JSON数据:

    {
      "data": {}
    }
    

    在使用模板处理事件时,可以使用条件逻辑来处理可能存在的缺失字段,确保在模板渲染时不会因访问不存在的属性而引发错误。

    2024-01-27 22:21:53
    赞同 1 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    EventBridge默认不会直接提取$.data里面的内容作为JSON投递到SLS。如果使用模板,当某些消息或字段不存在时,会按照模板中的规则进行处理。例如,如果$data.source_url不存在,模板可能会渲染成空字符串或者其他默认值。

    2024-01-12 21:46:22
    赞同 1 展开评论 打赏
  • 目标是sls时,默认是投递完整事件的 ,此回答整理自钉群“EventBridge用户交流群”

    2024-01-11 14:31:30
    赞同 1 展开评论 打赏

为企业提供高效、稳定、易扩展的中间件产品。

相关电子书

更多
PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final 立即下载
Kubernetes下日志实时采集、存储与计算实践 立即下载
日志数据采集与分析对接 立即下载