AWS Lambda
开发人员指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

配合使用 AWS Lambda 和 Kinesis

您可以创建一个 Kinesis 流,每小时从几十万个源(例如网站点击流、财务交易记录、社交媒体源、IT 日志和位置跟踪事件)中连续捕获和存储数 TB 数据。有关更多信息,请参阅Kinesis

如果在流上检测到记录,您可以订阅 Lambda 函数以自动从 Kinesis 流读取成批记录并处理它们。随后,AWS Lambda 会定期 (每秒一次) 轮询流中的新记录。

请注意有关 Kinesis 和 AWS Lambda 集成的工作原理的以下信息:

  • 基于流的模型 - 这是一个模型(请参阅事件源映射),其中 AWS Lambda 轮询流并在检测到新记录时通过将新记录作为参数传递来调用您的 Lambda 函数。

    在基于流的模型中,您在 AWS Lambda 中保留事件源映射。事件源映射描述了哪个流映射到哪个 Lambda 函数。AWS Lambda 提供了可用于创建映射的 API (CreateEventSourceMapping)。您也可以使用 AWS Lambda 控制台创建事件源映射。

  • 同步调用 - AWS Lambda 通过轮询 Kinesis 流来使用 RequestResponse 调用类型(同步调用)来调用 Lambda 函数。有关调用类型的更多信息,请参阅 调用类型

  • 事件结构 - Lambda 函数接收的事件是 AWS Lambda 从流读取的记录的集合。在配置事件源映射时,您指定的批处理大小是您希望 Lambda 函数在每次调用时接收的最大记录数。

无论哪个对象调用 Lambda 函数,AWS Lambda 始终代表您执行 Lambda 函数。如果 Lambda 函数需要访问任何 AWS 资源,您需要授予访问这些资源的相关权限。您还需要向 AWS Lambda 授予轮询 Kinesis 流的权限。您应该向 AWS Lambda 可代入的 IAM 角色(执行角色)授予所有这些权限,以便轮询流并代表您执行 Lambda 函数。您应该先创建该角色,然后在创建 Lambda 函数时启用它。有关更多信息,请参阅 管理权限:使用 IAM 角色(执行角色)

下图说明应用程序的流程:

  1. 自定义应用程序将记录写入流。

  2. AWS Lambda 轮询流并在检测到流中的新记录时调用 Lambda 函数。

  3. AWS Lambda 通过代入您在创建 Lambda 函数时指定的执行角色来执行 Lambda 函数。

有关引导您完成示例设置的教程,请参阅教程:将 AWS Lambda 与 Kinesis 结合使用