开发者问题收集

无服务器框架无法从 dynamodb local 启动

2017-08-08
13460

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

我有一个在 Serverless 框架上使用 DynamoDB(插件:serverless-offline、serverless-dynamodb-local)开发的 AWS Lambda 函数的工作开发环境。删除 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 正在运行。

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

3个回答

所以事实证明这是一个问题,已在此处注册并解决: https://github.com/99xt/serverless-dynamodb-local/issues/120

如果您将其用作开发依赖项,则可以通过输入 npm i [email protected] --save-dev 来下载版本 0.2.24。

Carlos Delgado
2017-08-09

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

npm install serverless-offline --save-dev

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

它看起来应该像这样:

plugins:
  - serverless-offline

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

serverless

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

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

serverless offline start or sls offline start.

参考 链接

Mayur Shah
2018-11-27

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

custom:
  dynamodb:
    stages:
      - local
VaibhavJoshi
2021-05-20