為何我的應用程式實例無法如預期般縮減?

當應用程式的資料流量變慢,導致應用程式開始縮減時,您會發現實例不會消失。

當應用程式的送入工作量變慢時,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.');
      });
    });
    
  • 檢閱應用程式實例的詳細資料,以協助您對應用程式進行疑難排解。 請參閱 取得應用程式實例的詳細資料