為何我的應用程式實例無法如預期般縮減?
當應用程式的資料流量變慢,導致應用程式開始縮減時,您會發現實例不會消失。
當應用程式的送入工作量變慢時,Code Engine 會根據應用程式配置的調整值開始自動縮減應用程式。Code Engine 會將 SIGTERM 訊息傳送至您的應用程式。 您的程式碼必須對這個信號做出反應並關閉。 如果您的程式碼未處理 SIGTERM 訊息,則在配置的要求逾時值 (預設值: 300 秒) 期間,您的應用程式實例會保持 Terminating 狀態。
請嘗試下列其中一個解決方案。
-
檢閱關於調整大小如何運作的說明文件。 請參閱 配置應用程式調整大小。
-
檢閱針對應用程式自動調整所配置的值。
- 從主控台,移至應用程式的頁面。 自動調整設定位於 配置> 執行時期 標籤上。
- 使用 CLI,執行
ibmcloud ce app get指令以顯示應用程式的詳細資料。
-
請確定您的程式碼會處理 SIGTERM 訊息。 若要讓應用程式完全縮減,您的應用程式碼必須處理 SIGTERM 信號。 當 Code Engine 自動縮減時,會將 SIGTERM 信號傳送至您的應用程式。
下列程式碼範例會處理 SIGTERM 訊息,因為在應用程式收到實例結束的信號之後,它會關閉應用程式所啟動之 HTTP 伺服器的連線。
const server = // start the HTTP server process.on('SIGTERM', () => { console.info('SIGTERM signal received.'); server.close(() => { console.log('Http server closed.'); }); }); -
檢閱應用程式實例的詳細資料,以協助您對應用程式進行疑難排解。 請參閱 取得應用程式實例的詳細資料。