无服务器框架无法从 dynamodb local 启动
编辑:正如卡洛斯在下面所回答的,这是 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 正在运行。
有人遇到过类似的问题吗?
所以事实证明这是一个问题,已在此处注册并解决: https://github.com/99xt/serverless-dynamodb-local/issues/120
如果您将其用作开发依赖项,则可以通过输入
npm i
[email protected]
--save-dev
来下载版本 0.2.24。
首先,将 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.
参考 链接
对我来说,这是一个非常微妙的细节。我将
stage
设置为
local
。因此,我必须在
serverless.yml
文件的
custom
部分中输入以下行:
custom:
dynamodb:
stages:
- local