Node.js Proxy 偵錯與疑難排解

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

建議先確認您新增至 Proxy 的所有 Node.js 程式碼都能正常運作,再進行部署 並設為 Edge本主題討論如何對包含 Node.js 的 Proxy 進行偵錯和疑難排解 部署完成後

連線集區大小將增加至 改善成效

如果發現效能緩慢,只要將預設值調升為預設值,或許就能解決問題 使用 maxSockets 建立的 Node.js 連線集區大小,或 操作方法: 監控通訊端如需詳細資訊和程式碼範例,請參閱 Node.js 效能提示:Apigee 社群中的通訊端集區

查看 Node.js 記錄檔

如要查看 Node.js 應用程式的記錄資訊:

  1. 在主要 API Proxy 頁面中,按一下要查看的 Proxy。
  2. 在所選 Proxy 的摘要頁面中,按一下「Node.js Logs」 選擇工具列右側的按鈕
,瞭解如何調查及移除這項存取權。

在「記錄」頁面中,您可以選取要查看的記錄時間範圍,如下所示。記錄檔記錄 HTTP 方法呼叫、呼叫成功或失敗、console.log 訊息等。輸入搜尋字詞 字串以顯示包含該字串的所有記錄項目。

使用追蹤工具

追蹤工具適用於一般的 Proxy 偵錯。如要進一步瞭解如何使用 追蹤工具,請參閱使用追蹤記錄 工具

列印控制台輸出內容

您可以在 Node.js 程式碼中嵌入 console.log 陳述式,並在追蹤記錄中查看輸出內容 如果偏好在終端機視窗中工作 可使用 Google Cloud CLI gcloud 指令列工具例如,以下陳述式會輸出變數值 config.user:

console.log('Logging in as %s', config.username);

如要在追蹤工具中查看 console.log 訊息的輸出結果,請呼叫 在 Trace Tool 中您的 API,然後按一下 [Output from all Transactions] (所有交易的輸出) , 開啟輸出面板:

假設您已執行下列程式碼...

var http = require('http');

console.log('node.js application starting...');

var svr = http.createServer(function(req, resp) {
    resp.end('Hello, World!');
});

svr.listen(9000, function() {
    console.log('Node HTTP server is listening');
});

... 控制台陳述式會出現在面板中:

調整 Nginx 目標逾時設定

如果您使用 Nginx 做為 Proxy,但看到「閘道錯誤」錯誤,請嘗試增加 Nginx Proxy 逾時設定,說明如下:

例如:

proxy_connect_timeout       60;
proxy_read_timeout          120;

視伺服器的回應時間長短而定 儲存空間設定舉例來說,如果讀取逾時時間設為 45 至 60 秒 或在合理的緩衝範圍內

調整 Apigee 目標逾時設定

您也可以在 HttpTargetConnection 元素中設定 Apigee 的預設逾時值 的高可用性 VPN 閘道預設值如下:

connect.timeout.millis - 60 seconds
io.timeout.millis - 120 seconds
<HTTPTargetConnection>
    <Properties>
        <Property name="connect.timeout.millis">5000</Property>
        <Property name="io.timeout.millis">5000</Property>
    </Properties>
    <URL>http://www.google.com</URL>
</HTTPTargetConnection>

另請參閱「端點屬性參考資料」。

瞭解詳情

如要進一步瞭解偵錯,請參閱:

後續步驟

瞭解 Apigee Edge 中的 Node.js 模組支援相關資訊,包括: HTTP/HTTPS、TLS 和其他進階主題的支援,請參閱「瞭解 Edge 支援情形」一文 Node.js 模組