【问题标题】:Serverless framework won't start with dynamodb local无服务器框架不会从 dynamodb local 开始
【发布时间】:2018-01-16 14:18:35
【问题描述】:

编辑:正如 Carlos 在下面回答的那样,这是 serverless-dynamodb-local 版本 0.2.23 的错误(本次编辑的版本为 0.2.35)。现在已经解决了,如果您遇到类似的问题,您应该更新您的依赖项。

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

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

【问题讨论】:

  • 此处相同,但最新版本 (0.2.23) 已于昨天发布。我恢复到 0.2.22 并且工作正常,所以这可能是一个错误或未记录的新要求。

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


【解决方案1】:

serverless-dynamodb-local 0.2.35 为我工作

yarn remove serverless-dynamodb-local
yarn add serverless-dynamodb-local@0.2.35
sls dynamodb install

【讨论】:

    【解决方案2】:

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

    custom:
      dynamodb:
        stages:
          - local
    

    【讨论】:

      【解决方案3】:

      运行命令

      sls dynamodb install --stage dev
      

      【讨论】:

      • 仅适用于 T2B:- 1. 首先在您的系统上下载 OpenJDK - sudo apt install default-jdk
      【解决方案4】:

      我尝试了以下方法,它为我解决了问题

      sls dynamodb install --localPath ./bin
      

      参考https://github.com/99xt/serverless-dynamodb-local/issues/210

      【讨论】:

        【解决方案5】:

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

        npm install serverless-offline --save-dev
        

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

        它应该看起来像这样:

        plugins:
          - serverless-offline
        

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

        serverless
        

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

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

        serverless offline start or sls offline start.
        

        参考link

        【讨论】:

        • 嗨,Mayur。感谢您的回答,但此特定问题是由特定版本中的错误引起的故障,该版本已被修补。
        【解决方案6】:

        原来这是一个问题,在这里注册并解决:https://github.com/99xt/serverless-dynamodb-local/issues/120

        如果您将其用作开发依赖项,则可以通过键入 npm i serverless-dynamodb-local@0.2.24 --save-dev 下载 0.2.24 版本。

        【讨论】:

        • 嘿@Pablo,如果这解决了您的问题,请将其标记为“已解决”:)
        猜你喜欢
        • 1970-01-01
        • 2020-02-09
        • 2021-06-03
        • 2016-05-17
        • 1970-01-01
        • 1970-01-01
        • 2014-02-23
        • 2021-01-29
        • 1970-01-01
        相关资源
        最近更新 更多