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

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

流程 DynamoDB 事件

使用此示例应用程序,您可以在概述和快速入门指南中学习的内容的基础上构建,并安装另一个示例应用程序。此应用程序包括一个 Lambda 函数,由 DynamoDB 表事件源。的 Lambda 功能非常简单—它记录通过事件源消息传递的数据。

本练习向您展示如何模拟传递给的事件源消息 Lambda 功能。

开始前的准备工作

确保您已完成 安装 AWS SAM CLI.

第1步: 初始化应用程序

在本部分中,您将下载应用程序包,其中包含一个 AWS SAM 模板和应用程序代码。

初始化应用程序

  1. 在 AWS SAM CLI 命令提示符处运行以下命令。

    sam init \ --location gh:aws-samples/cookiecutter-aws-sam-dynamodb-python \ --no-input
  2. 查看命令创建的目录的内容 (dynamodb_event_reader/):

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

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

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

对于本地测试,使用 AWS SAM CLI生成样本 DynamoDB 事件并调用 Lambda 功能:

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

generate-event 命令创建测试事件源消息,如所有组件部署到AWSCloud时创建的消息。此事件源消息被连接到 Lambda 功能 ReadDynamoDBEvent.

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

第3步: 打包应用程序

在本地测试应用程序后,您可以使用 AWS SAM CLI创建部署包,用于将应用程序部署到AWSCloud。

创建 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步: 部署应用程序

现在您已经创建了部署包,可以使用它将应用程序部署到AWSCloud。然后,您测试应用程序。

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

  • 在 AWS SAM CLI,使用 deploy 用于部署您在模板中定义的所有资源的CLI命令。

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

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

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

在AWS云中测试无服务器应用程序

  1. 打开DynamoDB控制台。

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

  3. 转到 指标 选项卡,然后选择 查看所有 CloudWatch 指标. 在 CloudWatch 控制台,选择 日志 以查看日志输出。

后续步骤

的 AWS SAM GitHub 存储库包含其他示例应用程序,供您通过下载和执行。要访问此存储库,请参阅 AWS SAM 示例应用程序.