如何使用 AWS Lambda 捕获 Amazon DynamoDB 全局表流事件?

上次更新日期:2022 年 8 月 18 日

我想创建一个 AWS Lambda 触发器以处理来自 Amazon DynamoDB 全局表的流。

解决方法

DynamoDB 全局表是单个账户中跨区域副本的集合。全局表使用 DynamoDB Streams 跨不同区域复制数据。在为全局表创建副本时,默认情况下会创建一个流。借助 DynamoDB Streams,对副本进行的任何更改都将在一秒钟内复制到相同全局表内的所有其他副本中。

注意:在任何一个区域中的任何全局表副本上具有单个使用者足以检索所有项目的修改记录。

您可以通过执行以下操作配置 AWS Lambda 触发器,处理来自全局表副本的流:

  1. 确保 AWSLambdaDynamoDBExecutionRole 拥有必要的 AWS Identity and Access Management(IAM)权限。
    注意:默认情况下,AWSLambdaDynamoDBExecutionRole IAM policy 不具有 Lambda 与其他服务(例如 Amazon Simple Notification Service (Amazon SNS))通信的权限。这意味着,您必须根据 Lambda 目标添加所需的额外权限。
  2. 使用蓝图 dynamodb-process-stream 创建 Lambda 函数。您可以根据需要修改 Lambda 代码以处理流数据。
  3. 成功创建 Lambda 函数后,打开 DynamoDB console(DynamoDB 控制台),然后选择。在 Exports and streams(导出和流)选项卡中,选择 Create trigger(创建触发器)。然后,选择您在上一步骤中创建的 Lambda 函数。确保选择 Enable trigger(启用触发器),以便触发器在创建后激活。

现在,Lambda 函数已配置为全局表副本的触发器。对副本进行任何更改都会被流捕获,并调用触发器。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?