无服务器部署使用无服务器组合抛出“spawn serverless ENOENT”

Sur*_*ude 7 node.js typescript serverless-framework serverless-architecture serverless

无服务器部署抛出spawn serverless ENOENT\n尝试部署时出现以下错误client-service,尽管在此之前所有服务都已部署。

\n
\n

错误:生成无服务器 ENOENT

\n
\n

使用以下版本进行无服务器和无服务器组合

\n
"@serverless/compose": "^1.3.0",\n"serverless": "^3.22.0",\n
Run Code Online (Sandbox Code Playgroud)\n

serverless-compose.ts 配置

\n
const serverlessCompose = {\n  services: {\n    "infra-test": {\n      path: "infra-test",\n    },\n    "client-service": {\n      path: "client-\'service\'",\n      dependsOn: ["infra-test"],\n    },\n  },\n};\n\nmodule.exports = serverlessCompose;\n\n
Run Code Online (Sandbox Code Playgroud)\n

带有使用标志的完整命令名称(如果不适用,请填写“N/A”)

\n

serverless deploy --stage sbx

\n

完整的命令输出。

\n
infra-test \xe2\x80\xba \ninfra-test \xe2\x80\xba Stack Outputs:\ninfra-test \xe2\x80\xba   ServerlessDeploymentBucketName: infra-test-sbx-serverlessdeploymentbucket-yg91fd\ninfra-test \xe2\x80\xba 3 deprecations found: run \'serverless doctor\' for more details\ninfra-test \xe2\x80\xba deployed\nclient-service \xe2\x80\xba deploying\nclient-service \xe2\x80\xba Running "serverless deploy --stage sbx"\nclient-service \xe2\x80\xba error\nclient-service \xe2\x80\xba spawn serverless ENOENT\nclient-service \xe2\x80\xba Error: spawn serverless ENOENT\nclient-service \xe2\x80\xba     at Process.ChildProcess._handle.onexit (node:internal/child_process:283:19)\nclient-service \xe2\x80\xba     at onErrorNT (node:internal/child_process:476:16)\nclient-service \xe2\x80\xba     at processTicksAndRejections (node:internal/process/task_queues:82:21)\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 我已使用以下命令将 serverless-dynamodb-local 0.2.40 降级到版本 0.2.30
  2. \n
\n
npm uninstall serverless-dynamodb-local\nsls dynamodb uninstall\n\nnpm install serverless-dynamodb-local@0.2.30\nsls dynamodb install\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 删除了服务使用的所有无服务器本地依赖项
  2. \n
  3. 尝试使用单个 lambda 函数,因为之前的服务有很多 lambda
  4. \n
  5. 使用\n sls dynamodb installjava\n安装了 sls dynamodb 和 java
    \xe2\x9e\x9c  sls-compose git:(main) \xe2\x9c\x97 java --version\n     openjdk 19 2022-09-20\n     OpenJDK Runtime Environment Homebrew (build 19)\n     OpenJDK 64-Bit Server VM Homebrew (build 19, mixed mode, sharing)\n
    Run Code Online (Sandbox Code Playgroud)\n
  6. \n
\n

Sur*_*ude 3

问题出在 serverless-compose.ts 配置中

   "client-service": {
      path: "client-'service'",
      dependsOn: ["infra-test"],
    }
Run Code Online (Sandbox Code Playgroud)

在路径“client-'service'”中有一个引号,这是导致此问题的语法错误

正确的片段如下:

 "client-service": {
      path: "client-service",
      dependsOn: ["infra-test"],
    },
Run Code Online (Sandbox Code Playgroud)