本地搭建 serverless-offline 与 DynamoDB 环境

该内容并非本站原创,只因原内容字体太小、排版较乱,学习不便,故重新整理发布,如有侵权请联系删除[yestool666#gmial.com] 同时可点击底部github移步出处

这次我们将基于之前的文章《Serverless 应用开发指南:Lambda + API Gateway + DynamoDB 制作 REST API 》中的 todolist,来开始我们的调试之旅。

在之前的示例里,我们使用了 DynamoDB 来存储数据。在这篇文章里,我们也将介绍 serverless-dynamodb-local 来在本地运行 DynamoDB。

在那之前,如果你还没有之前的代码,请先安装服务到本地:

npm install -u https://github.com/phodal/serverless-guide/tree/master/aws-node-rest-api-with-dynamodb -n dynamodb-offline

然后,在我们的项目里安装 serverless-offline 插件:

yarn add --dev serverless-offline

并安装 serverless-dynamodb-local 插件:

yarn add --dev serverless-dynamodb-local

然后,在 serverless.yml 中添加相应的插件:

plugins:
  - serverless-offline
  - serverless-dynamodb-local

紧接着,还需要进行相应的 dynamodb 配置:

custom:
  dynamodb:
    start:
      port: 8000
      inMemory: true
      migrate: true
    migration:
      dir: offline/migrations

其中的 migration 对应的是本地的 Scheme,位于 offline/migrations/todos.json,内容如下:

{
    "Table": {
        "TableName": "serverless-rest-api-with-dynamodb-dev",
        "KeySchema": [
            {
                "AttributeName": "id",
                "KeyType": "HASH"
            }
        ],
        "AttributeDefinitions": [
            {
                "AttributeName": "id",
                "AttributeType": "S"
            }
        ],
        "ProvisionedThroughput": {
            "ReadCapacityUnits": 1,
            "WriteCapacityUnits": 1
        }
    }
}

然后,执行:

serverless dynamodb install

以安装 DynamnoDB 的本地版本。

一切准备妥当了,我们可以进行测试了。