EventBridge中,比如$.data.source_url, 如果source_url不存在,模版会渲染成啥?是默认没有直接提取$.data里面的内容,作为json投递到sls吗?
在阿里云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": {}
}
在使用模板处理事件时,可以使用条件逻辑来处理可能存在的缺失字段,确保在模板渲染时不会因访问不存在的属性而引发错误。
EventBridge默认不会直接提取$.data里面的内容作为JSON投递到SLS。如果使用模板,当某些消息或字段不存在时,会按照模板中的规则进行处理。例如,如果$data.source_url不存在,模板可能会渲染成空字符串或者其他默认值。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。