实验概览
本实验将是 “Developing with DynamoDB” 课程的最后一个实验,建立在那些实验中已经涉及的技能之上。因此,我们预计本实验更具挑战性,您有机会通过参考相关文档和运用以往经验来完成开发,而不只是使用提供的答案。不过,我们提供了完整答案。您可以在需要时参阅答案。
AnyCompany 正在部署一款新的基于 Web 的音乐应用程序,以补充其电影数据库应用程序。为此,他们已选择使用 Amazon DynamoDB 和基于 AWS Lambda 的无服务器架构。
此应用程序将有四项基本功能:允许用户显示数据库中的所有音乐专辑,或者那些特定流派的音乐专辑;允许用户向数据库中添加条目或从中删除条目,以及更新给定专辑的非关键属性。您的任务是结合使用 Amazon DynamoDB、AWS Lambda、Amazon API Gateway 以及提供给您的前端网站创建和实现这些功能。还有一项可选任务:将 Amazon Cognito 与该应用程序集成以授权用户。
音乐应用程序将有以下组件:
- 一个托管在 Amazon S3 上用 HTML/Javascript 编写的静态前端。
- 一个利用 Amazon API Gateway、AWS Lambda 和 Amazon Cognito 的无服务器后端。
- 一个适用于持久层的 DynamoDB 表。
上图显示了实验完成后的整体架构。 通过 Amazon Cognito 验证的用户可以使用音乐应用程序,利用 Amazon API Gateway 和多个 Lambda 函数来操作名为 Albums 的 DynamoDB 表中的数据。
目标
完成本实验后,您应能够:
- 创建并部署用 Python 编写的 Lambda 函数,对 DynamoDB 表执行操作。
- 利用 DynamoDB 条件表达式。
- 创建 API Gateway 端点并将其部署到代理 Lambda 函数。
- 创建并配置用于身份验证的 Amazon Cognito 用户池。
技术性知识先决条件
要成功完成本实验,您应熟悉如何使用 AWS 管理控制台、在集成开发环境 (IDE) 中编辑脚本,以及实施基本的 Python 脚本来使用 DynamoDB 执行 CRUD 操作。您还应该对 Amazon Simple Storage Service (Amazon S3)、AWS Lambda 和 Amazon API Gateway 服务有个基本的了解。
图标键
本实验中使用了各种不同的图标,以提醒您注意指南的特定方面。下面的列表解释了每个图标的用途:
- 提醒:提示特别相关或重要的信息(不查看该信息并不会损坏设备或数据,但可能导致需要重复某些步骤)。
- 命令:您必须运行的命令。
- 预期输出:您可以用来验证命令或已编辑文件输出的示例输出。
- 注意:一项提示、技巧或重要指导。
- 了解详情:可以找到更多信息的位置。
- 知识考核:可以检查您的知识掌握情况和测试您学到的知识。