本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
处理 DynamoDB 事件
使用此示例应用程序,您可以在概述和快速入门指南中的所学内容基础上进行构建,然后安装另一个示例应用程序。此应用程序由一个 Lambda 函数组成,该函数由 DynamoDB 表事件源调用。Lambda 函数非常简单,它记录通过事件源消息传入的数据。
本练习向您展示如何模拟在调用 Lambda 函数时传递给它们的事件源消息。
开始之前
请确保您已完成 安装 Amazon SAM CLI 中的所需设置。
第 1 步:初始化应用程序
在本节中,您将下载应用程序包,其中包括 Amazon SAM 模板和应用程序代码。
初始化应用程序
-
在 Amazon SAM CLI 命令提示符处运行以下命令。
sam init \ --location gh:aws-samples/cookiecutter-aws-sam-dynamodb-python \ --no-input
请注意,
gh:
在上面的命令中扩展为 GitHub 网址https://github.com/
。 -
查看命令创建的目录的内容 (
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 部署包
-
在要保存打包代码的位置创建 S3 存储桶。如果要使用现有 S3 存储桶,请跳过此步骤。
aws s3 mb s3://
bucketname
-
通过在命令提示符处运行以下
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 云中测试无服务器应用程序
-
打开 DynamoDB 控制台。
-
将记录插入刚创建的表中。
-
转至表格的 “指标” 选项卡,然后选择 “查看所有 CloudWatch 指标”。在 CloudWatch 控制台中,选择 Logs 即可查看日志输出。
后续步骤
Amazon SAM GitHub 存储库包含其他示例应用程序供您下载和试用。要访问此存储库,请参阅 Amazon SAM 示例应用程序