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

配合使用 AWS Lambda 和 Amazon DynamoDB

您可以使用 Lambda 函数作为 Amazon DynamoDB 表的触发器。触发器是为响应对 DynamoDB 表做出的更新而采取的自定义操作。要创建触发器,首先要为表启用 Amazon DynamoDB Streams。然后,编写一个 Lambda 函数来处理发布到该流的更新。

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

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

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

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

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

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

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

  1. 自定义应用程序更新 DynamoDB 表。

  2. Amazon DynamoDB 将项目更新发布到流。

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

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

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