Serverless 框架不会以 dynamodb local 启动

Serverless framework won't start with dynamodb local

编辑:正如卡洛斯在下面回答的那样,这是 serverless-dynamodb-local 版本 0.2.23(本次编辑的版本为 0.2.35)的错误。它现在已经解决,如果您遇到类似的问题,您应该更新您的依赖项。

我有一个在无服务器框架上开发的 AWS Lambda 函数的工作开发环境,使用 DynamoDB(插件:serverless-offline,serverless-dynamodb-local 。删除 node_modules 并重新安装后,我丢失了启动开发服务器的能力,我以前用 serverless offline start

serverless offline 正常工作,但如果我尝试在本地 运行 dynamodb,它会抛出以下错误:

Reference Error ----------------------------------------

  options is not defined

     For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.

  Stack Trace --------------------------------------------

ReferenceError: options is not defined
    at BbPromise.resolve.then (/Users/pablo/Documents/myProject/node_modules/serverless-dynamodb-local/index.js:164:21)
From previous event:
    at PluginManager.invoke (/Users/pablo/.nvm/versions/node/v6.10.3/lib/node_modules/serverless/lib/classes/PluginManager.js:236:22)
    at PluginManager.run (/Users/pablo/.nvm/versions/node/v6.10.3/lib/node_modules/serverless/lib/classes/PluginManager.js:255:17)
    at variables.populateService.then (/Users/pablo/.nvm/versions/node/v6.10.3/lib/node_modules/serverless/lib/Serverless.js:99:33)
    at runCallback (timers.js:672:20)
    at tryOnImmediate (timers.js:645:5)
    at processImmediate [as _immediateCallback] (timers.js:617:5)
From previous event:
    at Serverless.run (/Users/pablo/.nvm/versions/node/v6.10.3/lib/node_modules/serverless/lib/Serverless.js:86:74)
    at serverless.init.then (/Users/pablo/.nvm/versions/node/v6.10.3/lib/node_modules/serverless/bin/serverless:39:50)

  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Forums:        forum.serverless.com
     Chat:          gitter.im/serverless/serverless

  Your Environment Information -----------------------------
     OS:                     darwin
     Node Version:           6.10.3
     Serverless Version:     1.19.0

奇怪的是,如果我转到 localhost:8000/shell,dynamodb shell 是 运行ning。

有没有人遇到过类似的问题?

原来这是一个问题,已在此处注册并解决:https://github.com/99xt/serverless-dynamodb-local/issues/120

如果您将它用作开发依赖项,则可以通过键入 npm i serverless-dynamodb-local@0.2.24 --save-dev 下载版本 0.2.24。

首先,将 Serverless Offline 添加到您的项目中:

npm install serverless-offline --save-dev

然后在项目的 serverless.yml 文件中,将以下条目添加到插件部分:serverless-offline。如果没有插件部分,您需要将其添加到文件中。

它应该看起来像这样:

plugins:
  - serverless-offline

您可以通过运行无服务器命令行检查您是否已成功安装插件:

serverless

控制台应将离线显示为您的无服务器项目中现在可用的插件之一。

然后在您的项目根目录中 运行:

serverless offline start or sls offline start.

引用link

我尝试了下面的方法,它解决了我的问题

sls dynamodb install --localPath ./bin

引用https://github.com/99xt/serverless-dynamodb-local/issues/210

运行 命令

sls dynamodb install --stage dev

对我来说,这是一个非常微妙的细节。我将 stage 设置为 local。因此,我不得不将以下行放在 serverless.yml 文件的 custom 部分:

custom:
  dynamodb:
    stages:
      - local

serverless-dynamodb-local 0.2.35 对我有用

yarn remove serverless-dynamodb-local
yarn add serverless-dynamodb-local@0.2.35
sls dynamodb install