我想在不使用EC2实例的情况下处理Kinesis流数据吗? 是否有可能做到这一点,即。通过Lambda函数等等?
答案 0 :(得分:1)
是的,您可以使用Lambda服务来处理Kinesis流数据。您需要做的是创建一个Lambda函数来处理数据(该数据将首先通过函数的参数event
获得)。
在流式传输数据的情况下,不会调用lambda函数作为对某些事件的响应。相反,Lambda服务会定期检查Kinesis是否有可用数据,然后调用您的函数。
为此,您需要在自定义lambda函数和Kinesis流之间创建事件源映射,还可以在其中指定将由lambda处理的批次的大小及其起始位置。
请不要忘记为lambda函数创建适当的角色,它需要访问Kinesis服务,因此您需要类似AWSLambdaKinesisExecutionRole
的权限。
要考虑的另一件事是批处理大小以及处理算法的复杂程度。 Lambda只能运行有限的时间(当前最多可以指定15分钟),此后,它将由AWS自动终止。在这种情况下,您将需要使用Lambda以外的其他功能,或者将lambda函数拆分为几个较小的函数。