无服务器框架不会以dynamodb local开头

时间:2017-08-08 21:06:18

标签: node.js amazon-dynamodb serverless-framework

编辑:正如Carlos所述,这是 serverless-dynamodb-local 版本0.2.23的错误(此编辑版本为0.2.35)。它现在已经解决,如果您遇到类似的问题,您应该更新您的依赖项。

我有一个在无服务器框架上开发的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正在运行。

有没有人有类似的问题?

6 个答案:

答案 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