托管的目标问题排查

您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档
信息

由于缺少 package.json,构建/部署失败

Node.js 应用的根目录中必须有 package.json 文件。在没有 package.json 的情况下尝试创建/部署代理的操作将在构建时失败。

从代理接收 502 错误网关

该进程启动失败时,可能会出现“502 Bad Gateway”错误。如需调试此问题,请在启动时检查运行时日志并查找错误消息。一种常见错误是 package.json 中缺少启动命令或启动命令无效。package.json 至少应在 scripts 属性中指定 "start": "node ."。例如:

{
  "name": "hello-world",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
   "start": "node ."
  },
  "author": "",
  "license": "",
  "description": "Hello World Application",
  "dependencies": {
  }
}

代理挂起并返回 504 网关超时

如果 Hosted Target 目标应用在超时限制内没有响应,则可能会发生“504 Gateway Timeout”错误。 检查以确保您的应用正在监听环境变量 PORT 中设置的端口。您可以在应用中使用 process.env.PORT 访问此变量。否则,您可以检查运行时日志,看看是否有任何其他错误消息。另请参阅应用运行时中设置的环境变量

此外,Google App Engine (GAE) 将请求超时设置为 60 秒。另请参阅 GAE 文档中的配额和限制

路径中含有非法字符

如果您在使用 Hosted Target 部署代理时看到类似如下内容的错误,则原因可能是代理名称包含空格。不得在托管目标的代理名称中使用空格。

Illegal character in path at index 69:
https://my-domain.net/organizations/my-org/apps/MD5 Hash/revision/1733635923

npm ERR! rofs EROFS:只读文件系统

托管目标应用使用 tmpfs 文件系统在容器中运行。Hosted Target 应用只能写入文件系统中的 /tmp 目录。 遗憾的是,较新版本的 NPM 将尝试向其缓存、日志等写入 /root/.npm。如需解决此问题,请参阅更改 NPM 缓存位置在没有 NPM 的情况下运行应用任务。