EventBridge投递sls,把整个event都投递过去了?不该是只投递event里面的Data吗?
在EventBridge投递到SLS时,默认情况下会将整个事件(包括Headers和Data)作为JSON字符串投递到SLS。但是,你可以通过自定义转换器来修改这个行为,只投递Data部分或者根据需要提取特定的字段。
如果你只想投递Data部分,可以使用Lambda函数作为转换器,并在Lambda函数中仅处理Data字段。这样,只有Data会被投递到SLS,而Headers和其他字段将被忽略。
以下是一个示例的Lambda函数代码,用于从Event中提取Data字段并将其作为JSON字符串投递到SLS:
import json
def lambda_handler(event, context):
data = event['data'] # 提取Data字段
sls_data = json.dumps(data) # 将Data转换为JSON字符串
# 在这里可以添加将sls_data投递到SLS的逻辑
return {
'statusCode': 200,
'body': 'Success'
}
通过这种方式,你可以自定义投递到SLS的数据内容,只包含所需的字段。
阿里云的EventBridge服务在投递事件到日志服务SLS(Log Service)时,可以根据你的配置投递整个事件或者仅投递事件中的特定部分。事件通常包括一个标准结构,例如包含id
、source
、time
、detail-type
以及detail
等字段,其中detail
字段通常承载了具体的业务数据。
根据描述,如果你配置EventBridge将整个事件投递到SLS,那么确实是会将整个事件结构作为一条日志记录存储,这有助于保留事件的原始上下文信息。
然而,如果只需要投递事件中的detail
部分或者其他特定字段,你可以在配置EventBridge投递规则时定义过滤器或者映射规则,以指定投递哪些字段到SLS。这样就可以灵活地选择只将detail
字段或者经过转换处理后的数据投递至SLS日志中。
在实践中,具体投递什么内容取决于你在设置EventBridge投递目标时的配置细节。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。