如何使用 Serverless 框架中的 DynamoDB 进行数据存储和管理

阅读时长 8 分钟读完

在现代 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 初始化应用程序。打开终端,并在其中指定新应用程序的名称和目录:

上述命令将创建一个名为 "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 表格中。在这里,我们将数据格式设置为 idname 字段,并将它们作为请求参数传递给 DynamoDB。ReturnValues 选项是用于指示 DynamoDB 返回我们添加项的旧值的属性,它可选,不过如果需要确保添加和更新操作的正确性,则应使用它。

测试

我们已经编写了 Serverless 开发和部署所需的所有代码和配置,并且创建了 DynamoDB 表格来存储数据。现在我们可以使用 Serverless Framework 本地运行应用程序,测试添加数据操作并使用 Postman 等工具来发送 post 请求。

在运行前,需要先安装 AWS SDK以及 serverless-dynamodb-local 插件:

然后,在命令行中运行以下命令将应用程序与本地 DynamoDB 数据库集成:

上述命令将在本地计算机上启动本地服务器,并将 Serverless 应用程序与本地的 DynamoDB 表格集成。现在,您可以使用 Postman 等工具向 /data 中的端点发送 post 请求,并查看添加数据操作是否准确。

结论

在本文中,我们学习了如何使用 Serverless 框架在 AWS Lambda 中集成 DynamoDB 数据库,以便于数据存储和管理,并编写了一个示例应用程序,演示了如何使用 AWS SDK 对 DynamoDB 执行添加数据操作。随着云计算和 serverless 的大力推广,DynamoDB 将变得更加重要,因此理解如何使用它对于目前和未来的 web 开发人员来说都是非常必要的技能。希望这篇指南对您有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6752f5998bd460d3ad9a065c

纠错
反馈