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

步骤 3:添加事件源(创建 DynamoDB 流并将其与您的 Lambda 函数关联)

请在此部分中执行以下操作:

  • 创建一个启用了 Amazon DynamoDB 表。

  • 在 AWS Lambda 中创建事件源映射。此事件源映射将 DynamoDB 流与您的 Lambda 函数关联。创建此事件源映射后,AWS Lambda 即开始轮询该流。

  • 测试端到端体验。执行表更新时,DynamoDB 会将事件记录写入流。AWS Lambda 轮询该流时,它将在流中检测新记录并通过向该函数传递事件来代表您执行 Lambda 函数。

步骤 3.1:创建启用了流的 DynamoDB 表

按照以下流程创建带有流的表:

  1. 登录 AWS 管理控制台 并通过以下网址打开 DynamoDB 控制台:https://console.amazonaws.cn/dynamodb/

  2. 在 DynamoDB 控制台中,创建一个启用了流的表。有关启用流的更多信息,请参阅使用 DynamoDB 流捕获表活动

    重要

    您必须在创建了 Lambda 函数的相同区域中创建 DynamoDB 表。本教程假定为 美国东部(弗吉尼亚北部) 区域。此外,表和 Lambda 函数必须隶属同一个 AWS 账户。

  3. 记下流 ARN。在下一步中将该流与您的 Lambda 函数关联时,您将需要此类信息。

步骤 3.2:在 AWS Lambda 中添加事件源

运行以下 AWS CLI create-event-source-mapping 命令。命令执行后,记下 UUID。在任何命令中,如删除事件源映射时,您都需要该 UUID 来引用事件源映射。

Copy
$ aws lambda create-event-source-mapping \ --region us-east-1 \ --function-name ProcessDynamoDBStream \ --event-source DynamoDB-stream-arn \ --batch-size 100 \ --starting-position TRIM_HORIZON \ --profile adminuser

注意

这会在指定的 DynamoDB 流和 Lambda 函数之间创建映射。您可将一个 DynamoDB 流关联到多个 Lambda 函数,也可将同一个 Lambda 函数关联到多个流。但是,Lambda 函数将共享它们共享的流的读取吞吐量。

您可以通过运行以下命令获取事件源映射的列表。

Copy
$ aws lambda list-event-source-mappings \ --region us-east-1 \ --function-name ProcessDynamoDBStream \ --event-source DynamoDB-stream-arn \ --profile adminuser

该列表返回您创建的所有事件源映射,而对于每个映射,它都显示 LastProcessingResult 等信息。该字段用于在出现任何问题时提供信息性消息。No records processed(指示 AWS Lambda 未开始轮询或流中没有任何记录)和 OK(指示 AWS Lambda 已成功读取流中的记录并调用了您的 Lambda 函数)等值表示未出现任何问题。如果出现问题,您将收到一条错误消息。

步骤 3.3:测试设置

全部完成!现在,adminuser 可以按以下方式测试设置:

  1. 在 DynamoDB 控制台中,添加、更新、删除表中的项目。DynamoDB 会将这些操作记录写入流。

  2. AWS Lambda 轮询该流,当检测到流有更新时,它会通过传递在流中发现的事件数据来调用您的 Lambda 函数。

  3. 您的函数将执行并在 Amazon CloudWatch 中创建日志。adminuser 还可以验证 Amazon CloudWatch 控制台中报告的日志。