偵錯執行個體

您可以啟用 VM 的偵錯模式。在偵錯模式下,具備「擁有者」、「編輯者」和「App Engine 管理員」角色的專案成員會擁有 VM 的根目錄存取權。偵錯模式開啟時,系統會停用作業系統更新與安全性修補程式的自動導入功能。然而,由於 VM 仍是負載平衡器集區的一部分,因此會持續接收外部要求。

只要啟用或停用偵錯功能,「VM 執行個體偵錯功能啟用/停用」事件即會出現在 Google Cloud Platform 主控台中,且該事件會記錄在 VM 的 /var/log/syslog.log 檔案裡。

啟用及停用偵錯模式

您可以使用 gcloud 來啟用及停用執行個體的偵錯模式。

如要在 gcloud 啟用及停用偵錯模式:

  1. 使用 gcloud app instances enable-debug 指令,針對特定執行個體和版本進行 VM 偵錯。如下所示:
    gcloud app --project [PROJECT-ID] instances enable-debug
    將 PROJECT-ID 替換成自己的專案 ID,並按照提示來指定要偵錯的執行個體版本。
  2. 偵錯完畢後,請停用偵錯模式。如下所示:
    gcloud app --project [PROJECT-ID] instances disable-debug
    按照提示來指定執行個體版本。

VM 會在偵錯模式停用後停止運作,接著新的應用程式執行個體會啟動,並在乾淨的全新 VM 上執行。

連線至執行個體

主控台

如要在主控台連線至執行個體:

  1. 造訪專案的 GCP 主控台「執行個體」頁面:
    前往執行個體頁面
  2. 在包含您要存取的執行個體的資料列中,按一下最右側的 [SSH]

    執行個體即會進入偵錯模式,執行個體的 SSH 工作階段也會在終端機視窗中開啟。

    您也可以從下拉式清單選取不同的選項來啟動 SSH 工作階段。

  3. 此時您會位於執行個體主機,而當中有幾個容器正在執行。如要進一步瞭解,請參閱下方的瞭解常見容器
  4. 在終端機視窗中,使用下列指令列出執行個體內正在執行的容器:
    sudo docker ps
  5. sudo docker ps 指令的輸出資料會以資料列的形式列出每個容器,接著找出含有您專案 ID 的資料列,而這就是負責執行程式碼的容器。請記下該容器的名稱。
  6. 您也可以叫用下列指令來列出應用程式的記錄資訊:
    sudo docker logs [CONTAINER-NAME]
  7. 使用下列指令,在負責執行程式碼的容器中啟動殼層:
    sudo docker exec -it [CONTAINER-NAME] /bin/bash
  8. 偵錯完畢後,輸入 exit 以退出容器,接著再次輸入 exit 來結束 SSH 工作階段。
  9. 停用執行個體的偵錯功能後,執行個體即會恢復正常運作。

gcloud

如要使用 gcloud 連線至執行個體:

  1. 如果執行個體已啟用偵錯功能,請叫用以下指令:
    gcloud beta app instances --project [PROJECT-ID] ssh [INSTANCE-NAME] --service [SERVICE] --version [VERSION]
  2. 此時您會位於執行個體主機,而當中有幾個容器正在執行。如要進一步瞭解,請參閱下方的瞭解常見容器
  3. 在終端機視窗中,使用下列指令列出執行個體內正在執行的容器:
    sudo docker ps
  4. sudo docker ps 指令的輸出資料會以資料列的形式列出每個容器,接著找出含有您專案 ID 的資料列,而這就是負責執行程式碼的容器。請記下該容器的名稱。
  5. 您也可以叫用下列指令來列出應用程式的記錄資訊:
    sudo docker logs [CONTAINER-NAME]
  6. 使用下列指令,在負責執行程式碼的容器中啟動殼層:
    docker exec -it [CONTAINER-NAME] /bin/bash
  7. 偵錯完畢後,輸入 exit 以退出容器,接著再次輸入 exit 來結束 SSH 工作階段。
  8. 停用執行個體的偵錯功能後,執行個體即會恢復正常運作。

瞭解常用容器

除了負責執行應用程式碼的容器外,執行個體可能會有下列容器:

容器與原始碼 開放原始碼機構 說明
fluentd_logger fluentd.org/ 記錄代理程式。
memcache_proxy memcache Proxy 開放原始碼 提供 Memcache 功能給應用程式。
nginx_proxy nginx.org 透過 Proxy 傳送要求至應用程式。
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Node.js 適用的 App Engine 彈性環境文件