如何在 Serverless 中管理 DynamoDB 数据

AWS DynamoDB 是一种全托管的 NoSQL 数据库,可无限扩展并自动处理负载平衡。而 AWS Serverless 是一种计算模型,让我们不再需要管理基础架构,并允许我们按需支付,仅支付我们使用的计算资源。因此,在 Serverless 中使用 DynamoDB 可以带来许多好处。这篇文章将分享如何在 Serverless 中管理 DynamoDB 数据。

步骤一:创建 DynamoDB 数据表

首先,我们需要在 AWS 控制台创建 DynamoDB 数据表。在创建表时,需要定义主键。

-
  ------------ ----------
  ------------ -
    -
      ---------------- -----
      ---------- ------
    -
  --
  ----------------------- -
    -
      ---------------- -----
      ---------------- ---
    -
  --
  ------------------------ -
    -------------------- --
    --------------------- -
  -
-

在上面的示例中,我们定义了一个名为 myTable 的表,并在其中定义了一个名为 id 的字符串类型主键。

步骤二:添加 IAM 角色

接着,我们需要为我们的 Lambda 函数添加 IAM 角色,允许访问 DynamoDB 表。我们可以使用下面的 JSON 示例代码创建具有访问 DynamoDB 权限的 IAM 角色:

-
  ---------- -------------
  ------------ -
    -
      --------- -
        ----------------------
        -------------------
        -------------------
        -----------------
        ----------------
        ---------------------
      --
      ----------- --------------------------------------------------------
      --------- -------
    -
  -
-

需要注意的是,Resource 的值应与我们在步骤一中创建的 DynamoDB 表 ARN 匹配。

步骤三:编写 Lambda 函数

接下来,我们需要编写我们的 Lambda 函数,以通过 AWS SDK 访问 DynamoDB 表。我们可以使用 Node.js 代码来实现此目标:

----- --- - -------------------
----- -------- - --- -------------- ------- ----------- ---

--------------- - ----- ------- -- -
  ----- ------ - -
    ---------- ----------
    ---- - --- - -- ------- - -
  --
  
  ----- ------ - ----- -----------------------------------
  
  ----- -------- - -
    ----------- ----
    ----- ----------------------
  --
  
  ------ ---------
--

上面的示例演示了如何使用 AWS SDK 获取标准 DynamoDB 数据类型的 item1。

步骤四:部署 Lambda 函数

现在我们已经编写并测试了我们的 Lambda 函数,接下来需要将其部署到 AWS 中。您可以使用 AWS CLI 或 AWS 管理控制台中的“创建函数”向导来完成部署。

结论

在本文中,我们学习了如何在 Serverless 中管理 DynamoDB 数据。我们创建了 DynamoDB 数据表,添加了 IAM 角色,编写了 Lambda 函数,并将其部署到了 AWS 中。如果您想深入了解更多关于 Serverless 和 DynamoDB 的知识,可以访问 AWS 官方文档了解更多信息。

参考资料

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67394c55317fbffedf161639