依托阿里云函数计算服务,日志服务提供流式数据加工服务。您可以通过配置一个函数计算触发器任务,定时获取更新的数据并触发函数的执行,进而增量消费日志服务Logstore的数据,并完成自定义加工任务。日志服务提供的函数模板或者用户自定义函数均可作为数据加工函数。
前提条件
- 已为日志服务触发函数执行授权。更多信息,请参见云资源访问授权。
- 已创建Project和Logstore。更多信息,请参见创建Project和Logstore。
适用场景
- 数据清洗、加工场景 通过日志服务,快速完成日志采集、加工、查询及分析。
- 数据投递场景 为数据的目的端提供支撑,构建云上大数据产品之间的数据管道。
数据加工函数
- 函数类型
- 模板函数
更多信息,请参见aliyun-log-fc-functions。
- 用户自定义函数
函数配置的格式与函数的具体实现有关。更多信息,请参见ETL函数开发指南。
- 模板函数
- 函数计算触发机制 函数计算触发器任务对应于函数计算的一个触发器,当创建函数计算触发器任务后,日志服务会根据该触发器任务的配置启动定时器,定时器轮询Logstore中的Shard信息,当发现有新的数据写入时,即生成
<shard_id,begin_cursor,end_cursor >
三元组信息作为函数Event,并触发函数执行。说明 当存储系统升级时,即使没有新数据写入,也可能发生Cursor变化,在这种情况下,每个Shard会额外空触发一次。针对这种情况,您可以在函数内通过Cursor尝试获取Shard的数据,如果获取不到数据说明是一次空触发,可以在函数内做忽略处理。更多信息,请参见自定义函数开发指南。函数计算触发器任务触发机制是时间触发。例如:您设置的函数计算触发器任务触发间隔为60秒,Logstore的Shard0一直有数据写入,那么Shard0每60秒就会触发一次函数执行(如果Shard没有新的数据写入则不会触发函数执行),函数执行的输入为最近60秒的Cursor区间。在函数内,可以根据Cursor读取Shard0数据进行下一步处理。
操作步骤
相关操作
常见问题
当您创建触发器后但未触发函数执行,可以从以下两个方面排查。
- 确认函数计算触发器任务配置的Logstore是否有数据增量修改,当Shard数据有变化时会触发函数执行。
- 查看触发器日志、函数运行日志查看是否有异常。