“ sls dynamodb start”引发生成Java ENOENT

时间:2018-08-20 07:11:49

标签: node.js amazon-web-services amazon-dynamodb serverless-framework aws-serverless

在Mac上运行,我使用aws-nodejs模板创建了一个基本的无服务器服务:

serverless create --template aws-nodejs --path TestService

之后,我使用以下命令添加了无服务器本地:

npm install serverless-dynamodb-local
serverless dynamodb install

无论我做什么,都无法启动dynamodb-local。当我运行

serverless dynamodb start

我收到以下错误:

Error: spawn java ENOENT
at _errnoException (util.js:992:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:190:19)
at onErrorNT (internal/child_process.js:372:16)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickDomainCallback (internal/process/next_tick.js:218:9)

运行java --version为我提供了以下信息:

Java 10.0.2 2018-07-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)

我正在使用带有无服务器1.30.1的Node 8.11.4。还安装了Aws-sdk,并且我已经设置了我的配置文件。

谢谢

3 个答案:

答案 0 :(得分:31)

显然存在版本 serverless-dynamodb-local@0.2.31 的错误。

issue on github

我已经通过使用降级到0.2.30版本

npm uninstall serverless-dynamodb-local
sls dynamodb uninstall

npm install serverless-dynamodb-local@0.2.30
sls dynamodb install

答案 1 :(得分:5)

按照关于serverless-dynamodb-local/issues/195的建议,我刚运行sls dynamodb install --localPath ./bin,并且Dynamodb正确安装。运行serverless offline start即可正常运行。

答案 2 :(得分:0)

确保已安装jre来运行dynamodb jar。否则将引发此错误。