"sls dynamodb start" 抛出 spawn java ENOENT

"sls dynamodb start" throws spawn java ENOENT

运行宁 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)

我将 Node 8.11.4 与无服务器 1.30.1 结合使用。还安装了 aws-sdk 并且我已经设置了我的配置文件。

谢谢

显然 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

根据 serverless-dynamodb-local/issues/195 上的建议,我只是 运行 sls dynamodb install --localPath ./bin 并且正确安装了 Dynamodb。 运行 serverless offline start 然后工作没有错误。

确保您已将 jre 安装到 运行 dynamodb jar。否则会抛出这个错误。