Hosted Targets のトラブルシューティング

package.json がないためビルド / デプロイに失敗した

Node.js アプリのルート ディレクトリには package.json ファイルが必要です。package.json を用意せずにプロキシを作成またはデプロイしようとすると、ビルド時に失敗します。

プロキシから 502 Bad Gateway が返される

プロセスの起動に失敗すると、「502 Bad Gateway」エラーが起きる可能性があります。これをデバッグするには、ランタイムログをチェックし、起動時のエラー メッセージを探します。よくあるエラーとして、package.json に開始コマンドが含まれていない、または開始コマンドが無効であることが挙げられます。少なくとも、package.jsonscripts プロパティで "start": "node ." を指定する必要があります。例:

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

プロキシがハングアップして、504 Gateway Timeout が返される

Hosted Targets のターゲット アプリがタイムアウト制限内に応答しないと、「504 Gateway Timeout」エラーが起きる可能性があります。アプリケーションが環境変数 PORT に設定されたポートをリッスンしていることを確認します。この変数にアクセスするには、アプリケーションで process.env.PORT を使用します。それ以外では、ランタイムログで他のエラー メッセージを確認できます。アプリケーション ランタイムで設定される環境変数もご覧ください。

また、Google App Engine(GAE)では 60 秒でリクエストがタイムアウトします。GAE ドキュメントの割り当てと上限もご覧ください。

パス内の文字が無効である

Hosted Targets を使用してプロキシをデプロイするときに次のようなエラーが表示される場合は、プロキシ名の中にスペースが含まれている可能性があります。Hosted Targets ではプロキシ名にスペースを使用することはできません。

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