存取在工作站上執行的 HTTP 伺服器

根據預設,您可以從瀏覽器存取工作站上的 HTTP 通訊埠 80 和通訊埠 102465535。您可以在工作站設定中設定 allowedPorts,限制工作站可存取的通訊埠。

執行中的工作站具有 host 屬性,您可以使用這個屬性,透過遠端瀏覽器以 HTTP 連線。您可以透過 API、Google Cloud CLI、 Google Cloud 控制台取得執行中工作站的詳細資料,或列印 $WEB_HOST 環境變數 (工作站內會自動設定),找出 host 屬性。網址預設會連線至通訊埠 80

預設工作站網址格式

host 資源網址預設採用下列格式:

https://PORT-WORKSTATION_NAME.CLUSTER_ID.cloudworkstations.dev

預留位置代表下列項目:

  • PORT:通訊埠號碼,預設為通訊埠 80
  • WORKSTATION_NAME:工作站名稱。
  • CLUSTER_ID:隨機產生的叢集 ID
  • cloudworkstations.dev:工作站的預設網域名稱。

    自訂網域的網址格式不同。如要進一步瞭解如何在 Cloud Workstations 中設定自訂網域,請參閱「為 Cloud Workstations 設定自訂網域」。

變更網址,連線至其他通訊埠

如要連線至其他通訊埠,請指定不同的通訊埠編號做為前置字元。舉例來說,下列網址會連線至通訊埠 9900

https://9900-myworkstation.cluster-12345abcde.cloudworkstations.dev

在本例中,請注意下列事項:

  • 9900:代表通訊埠號碼。
  • myworkstation:代表工作站 ID。
  • cluster-12345abcde:代表叢集 ID。
  • cloudworkstations.dev:代表工作站的預設網域名稱。

這些網址需要使用者驗證。如要存取這些網址,您必須登入帳戶,並具備 Cloud Workstations User IAM 角色 roles/workstations.userworkstations.workstations.use 權限。

從 Google Cloud 控制台連線至 HTTP 應用程式

您可以從Google Cloud 控制台連線至工作站中執行的 HTTP 應用程式。

對於您有權使用的任何執行中工作站,系統都會顯示「啟動」按鈕。根據預設,這個按鈕會透過通訊埠 80 建立連線。按一下「啟動」旁的展開箭頭 arrow_drop_down,即可查看其他連線選項。「連線至位於通訊埠的網頁應用程式」選項可讓您指定要連線至哪個通訊埠。

從基礎編輯器連線至 HTTP 應用程式

如要從基本編輯器連線至工作站上執行的應用程式,請按照下列任一操作說明進行:

  • 按一下終端機中的 localhost 連結。基礎編輯器會自動將 localhost 連結重新導向至正確的網址。

    1. 如要開啟終端機視窗,請依序點選「選單」 >「終端機」>「新增終端機」。 你也可以按下 Control+Shift+` 鍵 (在 macOS 上為 Command+Shift+` 鍵)。

    2. 在命令提示字元中執行下列指令,顯示 localhost 連結:

      echo http://localhost:PORT
      

      PORT 替換為通訊埠編號,例如 808080

    3. 按住 Control 鍵 (或 macOS 的 Command 鍵),然後點按 localhost 連結。
      瀏覽器會開啟這個頁面。PORT-WORKSTATION-HOSTNAME

  • 使用瀏覽器視窗:前往 https://PORT-WORKSTATION-HOSTNAME,其中 PORT 是通訊埠號碼,而 WORKSTATION-HOSTNAME 是工作站主機名稱。

限制工作站的連接埠存取權

如要限制工作站可存取的通訊埠,請在工作站設定中設定 allowedPorts

如要限制單一通訊埠,請將 PortRange firstlast 欄位設為相同的通訊埠編號。

預設允許的通訊埠為 22801024-65535

如要建立工作站設定,限制對 808080 的通訊埠存取權,請執行下列 Google Cloud CLI 指令:8100

    gcloud beta workstations configs create CONFIG \
        --cluster=CLUSTER_ID \
        --region=REGION \
        --project=PROJECT \
        --allowed-ports=first=80,last=80 \
        --allowed-ports=first=8080,last=8100

CORS 預檢要求

根據預設,工作站服務會確保工作站的所有要求都經過 驗證,並附上 Cookie 或驗證標頭。

跨來源資源共用 (CORS) 預檢要求不包含 Cookie 或自訂標頭,因此會被視為未經驗證,並遭到工作站服務封鎖。管理員可以選擇允許未經驗證的 CORS 預檢要求通過工作站,此時工作站中的目的地伺服器有責任驗證要求。

如要允許未經驗證的 CORS 預檢要求,請執行下列 Google Cloud CLI 指令:

    gcloud beta workstations configs update CONFIG \
        --cluster=CLUSTER_ID \
        --region=REGION \
        --project=PROJECT \
        --allow-unauthenticated-cors-preflight-requests

在 HTTP 回應中停用 localhost 替代項目

為確保開發中的應用程式能在工作站上正常執行,Cloud Workstations 會在工作站的 HTTP 回應中,將對 localhost、127.0.0.1 和 0.0.0.0 的參照,替換為工作站的主機名稱。

這可能會干擾某些應用程式。如要停用這項行為,請執行下列 Google Cloud CLI 指令:

    gcloud beta workstations configs update CONFIG \
        --cluster=CLUSTER_ID \
        --region=REGION \
        --project=PROJECT \
        --disable-localhost-replacement