我有一个在无服务器框架上开发的AWS Lambda函数的工作开发环境,使用DynamoDB(插件:无服务器 - 离线,无服务器 - 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正在运行。
有没有人有类似的问题?
答案 0 :(得分:2)
所以它变成了一个问题,在这里注册并解决了:https://github.com/99xt/serverless-dynamodb-local/issues/120
如果您将npm i serverless-dynamodb-local@0.2.24 --save-dev
用作开发依赖项,则可以下载0.2.24版本。
答案 1 :(得分:1)
首先,将无服务器离线添加到您的项目中:
npm install serverless-offline --save-dev
然后在项目的serverless.ym
l文件中,将以下条目添加到插件部分:serverless-offline
。如果没有插件部分,则需要将其添加到文件中。
它应该看起来像这样:
plugins:
- serverless-offline
您可以通过运行无服务器命令行来检查是否已成功安装插件:
serverless
控制台应显示为脱机状态,这是现在无服务器项目中可用的插件之一。
然后在项目根目录中运行:
serverless offline start or sls offline start.
引用link
答案 2 :(得分:0)
我尝试了以下方法,它为我解决了这个问题
sls dynamodb install --localPath ./bin
引用https://github.com/99xt/serverless-dynamodb-local/issues/210
答案 3 :(得分:0)
运行命令
sls dynamodb install --stage dev
答案 4 :(得分:-1)
对我来说,这是一个非常微妙的细节。我将 stage
设置为 local
。因此,我必须将以下行放在 custom
文件的 serverless.yml
部分:
custom:
dynamodb:
stages:
- local
答案 5 :(得分:-1)
serverless-dynamodb-local 0.2.35 为我工作
yarn remove serverless-dynamodb-local
yarn add serverless-dynamodb-local@0.2.35
sls dynamodb install