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.ym
l 文件中,将以下条目添加到插件部分: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
编辑:正如卡洛斯在下面回答的那样,这是 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.ym
l 文件中,将以下条目添加到插件部分: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