处理 DynamoDB 事件 - Amazon Serverless Application Model
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

处理 DynamoDB 事件

使用此示例应用程序,您可以在概述和快速入门指南中的所学内容基础上进行构建,然后安装另一个示例应用程序。此应用程序由一个 Lambda 函数组成,该函数由 DynamoDB 表事件源调用。Lambda 函数非常简单,它记录通过事件源消息传入的数据。

本练习向您展示如何模拟在调用 Lambda 函数时传递给它们的事件源消息。

开始之前

请确保您已完成 安装 Amazon SAM CLI 中的所需设置。

第 1 步:初始化应用程序

在本节中,您将下载应用程序包,其中包括 Amazon SAM 模板和应用程序代码。

初始化应用程序
  1. 在 Amazon SAM CLI 命令提示符处运行以下命令。

    sam init \ --location gh:aws-samples/cookiecutter-aws-sam-dynamodb-python \ --no-input

    请注意,gh:在上面的命令中扩展为 GitHub 网址https://github.com/

  2. 查看命令创建的目录的内容 (dynamodb_event_reader/):

    • template.yaml – 定义读取 DynamoDB 应用程序所需的两个 Amazon 资源:Lambda 函数和 DynamoDB 表。模板还定义了两个资源之间的映射。

    • read_dynamodb_event/ 目录 – 包含 DynamoDB 应用程序代码。

第 2 步:在本地测试应用程序

要进行本地测试,请使用 Amazon SAM CLI 生成示例 DynamoDB 事件并调用 Lambda 函数:

sam local generate-event dynamodb update | sam local invoke --event - ReadDynamoDBEvent

generate-event 命令会创建一条测试事件源消息,类似于将所有组件部署到 Amazon 云时创建的消息。此事件源消息通过管道传输到 Lambda 函 ReadDynamo数 dbEvent。

根据 app.py 中的源代码,验证预期的消息是否已打印到控制台。

第 3 步:打包应用程序

在本地测试应用程序后,使用 Amazon SAM CLI 创建部署包,用于将应用程序部署到 Amazon 云。

要创建 Lambda 部署包
  1. 在要保存打包代码的位置创建 S3 存储桶。如果要使用现有 S3 存储桶,请跳过此步骤。

    aws s3 mb s3://bucketname
  2. 通过在命令提示符处运行以下 package CLI 命令创建部署包。

    sam package \ --template-file template.yaml \ --output-template-file packaged.yaml \ --s3-bucket bucketname

    在下一步部署应用程序时,您应指定新的模板文件 packaged.yaml

第 4 步:部署应用程序

既然您已创建部署包,就可以使用它将应用程序部署到 Amazon 云。然后,测试应用程序。

将无服务器应用程序部署到 Amazon 云
  • 在 Amazon SAM CLI 中,使用 deploy CLI 命令部署您在模板中定义的所有资源。

    sam deploy \ --template-file packaged.yaml \ --stack-name sam-app \ --capabilities CAPABILITY_IAM \ --region us-east-1

    在命令中,--capabilities 参数允许 Amazon CloudFormation 创建 IAM 角色。

    Amazon CloudFormation 创建模板中定义的 Amazon 资源。您可以在 Amazon CloudFormation 控制台中访问这些资源的名称。

在 Amazon 云中测试无服务器应用程序
  1. 打开 DynamoDB 控制台。

  2. 将记录插入刚创建的表中。

  3. 转至表格的 “指标” 选项卡,然后选择 “查看所有 CloudWatch 指标”。在 CloudWatch 控制台中,选择 Logs 即可查看日志输出。

后续步骤

Amazon SAM GitHub 存储库包含其他示例应用程序供您下载和试用。要访问此存储库,请参阅 Amazon SAM 示例应用程序