代管目標疑難排解

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

缺少 package.json,因此建構/部署失敗

Node.js 應用程式的根目錄需要 package.json 檔案。如果沒有 package.json,嘗試建立/部署 Proxy 都會在建構時失敗。

接收來自 Proxy 的 502 閘道錯誤

如果程序無法啟動,可能會發生「502 錯誤閘道」錯誤。如要進行偵錯,請檢查執行階段記錄檔,並在啟動時尋找錯誤訊息。常見的錯誤是 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": {
  }
}

Proxy 當機並傳回 504 閘道逾時

如果代管目標的應用程式未在逾時限制內回應,可能會發生「504 閘道逾時」錯誤。 請確認應用程式正在監聽環境變數 PORT 中設定的通訊埠。您可以在應用程式中使用 process.env.PORT 存取這個變數。否則,您可以查看執行階段記錄中是否有其他錯誤訊息。另請參閱「在應用程式執行階段中設定的環境變數」。

此外,Google App Engine (GAE) 會設定 60 秒的要求逾時。請一併參閱 GAE 說明文件中的配額與限制

路徑含有無效字元

如果您在部署含有代管目標的 Proxy 時看到類似下列錯誤,原因可能是 Proxy 名稱包含空格。您不得在 Proxy 名稱中使用空間搭配代管目標。

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

npm ERR! rofs EROFS:唯讀檔案系統

代管目標應用程式會使用 tmpfs 檔案系統,在容器中執行。只有檔案系統中的 /tmp 目錄能夠由代管目標應用程式寫入。很抱歉,較新版本的 NPM 會嘗試針對快取、記錄等資料寫入 /root/.npm。如要解決這個問題,請參閱「變更 NPM 快取位置」或「在不使用 NPM 的情況下執行應用程式」。