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

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

处理 DynamoDB 事件

使用此示例应用程序,您可以在概述和快速入门指南中学到的内容基础上进行构建,然后安装另一个示例应用程序。此应用程序由 DynamoDB 表事件源调用的 Lambda 函数组成。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— 定义两个Amazon读取 DynamoDB 应用程序需要的资源:一个 Lambda 函数和一个 DynamoDB 表。模板还定义了两个资源之间的映射。

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

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

对于本地测试,请使用Amazon SAMCLI 来生成示例 DynamoDB 事件并调用 Lambda 函数:

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

这些区域有:generate-event命令创建一个测试事件源消息,如当所有组件都部署到Amazon云。此事件源消息通过管道传送到 Lambda 函数 “重置名称”。

验证预期消息是否已打印到控制台,根据app.py

第 3 步:打包应用程序

在本地测试应用程序后,您可以使用Amazon SAMCLI 创建部署软件包,您可以使用该软件包将应用程序部署到Amazon云。

创建 Lambda 部署程序包

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

    aws s3 mb s3://bucketname
  2. 创建部署程序包,通过运行以下packageCLI 命令在命令提示符下。

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

    您可以指定新的模板文件packaged.yaml(在下一步中部署应用程序时)。

第 4 步:部署应用程序

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

将无服务器应用程序部署到Amazon云

  • 在Amazon SAMCLI 中,请使用deployCLI 命令部署您在模板中定义的所有资源。

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

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

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

若要测试无服务器应用程序Amazon云

  1. 打开 DynamoDB 控制台。

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

  3. 转至指标选项卡,然后选择查看全部 CloudWatch 指标。在 CloudWatch 控制台中,选择日志以便能够查看日志输出。

后续步骤

这些区域有:Amazon SAMGitHub 存储库包含其他示例应用程序供您下载和试验。要访问此存储库,请参阅Amazon SAM示例应用程序