在现代 web 应用程序中,数据存储和管理是不可或缺的部分。对于前端开发人员来说,我们通常会使用后端服务来实现这些任务。最近,Serverless 框架成为了一个非常受欢迎的选项,它提供了一种快速构建和部署 serverless 应用程序的方式,而且具有快速、可扩展和成本效益高等特点。本文将介绍如何使用 Serverless 框架中的 DynamoDB 进行数据存储和管理。
简介
DynamoDB 是亚马逊 Web 服务(AWS)提供的一种完全托管的 NoSQL 数据库服务。它可以简化数据的存储和管理,并具有高度可扩展性和高可用性。与传统的关系型数据库管理系统(RDBMS)不同,DynamoDB 可以在毫秒级别内处理数百万个请求,因此非常适合高并发和大规模应用程序。
Serverless 框架提供了 DynamoDB 和 AWS Lambda 的集成,可以方便地创建和部署 web 应用程序。使用 Serverless 框架,可以快速构建和部署 serverless 应用程序,并具有针对开发人员的一些非常强大的工具,例如,可以使用 YAML 或 JSON 文件来定义应用程序的 API、数据存储和关联 AWS 服务等。
准备工作
在本指南中,我们将假设您具有 AWS 帐户,包括具有 DynamoDB 和 Lambda 权限的用户凭证。如果您没有 AWS 帐户,请先注册 AWS 并设置您的访问凭据,具体方法可以参考相关教程。
创建 Serverless 应用程序
首先,我们将使用 Serverless Framework 初始化应用程序。打开终端,并在其中指定新应用程序的名称和目录:
$ serverless create --template aws-nodejs --path my-app $ cd my-app
上述命令将创建一个名为 "my-app" 的新应用程序,并为 Node.js 运行时环境生成了一个基本的 "hello world" 模板。随后,我们可以添加 DynamoDB 数据库来存储和管理数据。
添加 DynamoDB
在为应用程序添加 DynamoDB 之前,我们首先需要设置凭证来允许 Serverless Framework 连接到 AWS。我们可以在根目录下创建一个名为 serverless.yml
的文件,并添加以下配置:
-- -------------------- ---- ------- -------- ------ --------- ----- --- -------- ---------- -------- - ------------------ ------- --------------------- ------------ -------------------- ---------- ------ -------- ------------- ------- - ----- ----- - ------- ---
上述配置定义了一个简单的 serverless 应用程序,其中包含一个名为 "hello" 的函数和一个 HTTP 触发器,该函数将在收到 GET 请求时返回 "hello world"。现在我们可以添加一个 DynamoDB 表格来存储和管理数据。在 serverless.yml
文件中添加以下配置:
-- -------------------- ---- ------- ---------- ---------- -------- ----- ---------------------- ----------- --------------------- - -------------- ---- -------------- --- ---------- - -------------- ---- -------- ------ ---------------------- ------------------ - ------------------- - ---------- ----------
上述配置将添加一个名为 "my-table" 的 DynamoDB 表格,其中每个项都将由一个名为 "id" 的字符串键标识。
添加操作查询
现在我们已经创建了 DynamoDB 数据库,我们可以添加操作,如添加数据、读取数据和更新数据。为了简化这个示例,我们只添加一个名为 "addData" 的操作来添加数据。
在 serverless.yml
文件中,将表格配置的部分和数据操作的函数配置合并为一个完整的文件:
-- -------------------- ---- ------- -------- ------ --------- ----- --- -------- ---------- -------- - ------------------ ------- --------------------- ------------ -------------------- ---------- -------- -------- --------------- ------- - ----- ----- ----- ------- ---- ---------- ---------- -------- ----- ---------------------- ----------- --------------------- - -------------- ---- -------------- --- ---------- - -------------- ---- -------- ------ ---------------------- ------------------ - ------------------- - ---------- ----------
使用 AWS SDK 操作数据
现在我们已经设置了 DynamoDB 表格并定义了一个操作,接下来我们将编写添加数据的代码,并使用 AWS SDK 与 DynamoDB 进行交互。我们将在 handler.js
文件中添加以下代码:
-- -------------------- ---- ------- ----- --- - ------------------- ----- -------- - --- ------------------------------ ---------------------- - ----- ------- -- - ----- ---- - ----------------------- ----- ------ - - ---------- --------------------------- ----- - --- -------- ----- --------- -- ------------- ---------- -- --- - ----- ------ - ----- ------------------------------- ------ - ----------- ---- ----- ----------------------- -- - ----- ------- - ------ - ----------- ---- ----- ---------------------- -- - --
上述代码将解析传入请求体中的 JSON 数据,并使用 AWS SDK 将其添加到 DynamoDB 表格中。在这里,我们将数据格式设置为 id
和 name
字段,并将它们作为请求参数传递给 DynamoDB。ReturnValues
选项是用于指示 DynamoDB 返回我们添加项的旧值的属性,它可选,不过如果需要确保添加和更新操作的正确性,则应使用它。
测试
我们已经编写了 Serverless 开发和部署所需的所有代码和配置,并且创建了 DynamoDB 表格来存储数据。现在我们可以使用 Serverless Framework 本地运行应用程序,测试添加数据操作并使用 Postman 等工具来发送 post 请求。
在运行前,需要先安装 AWS SDK以及 serverless-dynamodb-local 插件:
$ npm install aws-sdk serverless-dynamodb-local
然后,在命令行中运行以下命令将应用程序与本地 DynamoDB 数据库集成:
$ sls offline start --migrate
上述命令将在本地计算机上启动本地服务器,并将 Serverless 应用程序与本地的 DynamoDB 表格集成。现在,您可以使用 Postman 等工具向 /data
中的端点发送 post 请求,并查看添加数据操作是否准确。
结论
在本文中,我们学习了如何使用 Serverless 框架在 AWS Lambda 中集成 DynamoDB 数据库,以便于数据存储和管理,并编写了一个示例应用程序,演示了如何使用 AWS SDK 对 DynamoDB 执行添加数据操作。随着云计算和 serverless 的大力推广,DynamoDB 将变得更加重要,因此理解如何使用它对于目前和未来的 web 开发人员来说都是非常必要的技能。希望这篇指南对您有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6752f5998bd460d3ad9a065c