手動設定指南

自動佈建流程可以用來部署標記伺服器 只要按幾下滑鼠,就能使用 Cloud Run如果您想在其他環境中佈建標記伺服器,可以手動進行。標記伺服器為 Node.js Docker 映像檔內的伺服器中。

如要手動佈建標記伺服器,就必須佈建伺服器端 分別建立標記 (SST) 叢集和預覽伺服器。SST 叢集是 對標記伺服器的所有請求進入點,並將做為 請參閱「伺服器端代碼簡介」一文。預覽伺服器是 以及預覽容器所需的圖片

如圖 1 所示,標記之間的資料互動插圖 和預覽伺服器

標記伺服器和預覽伺服器資料流程的圖表

圖 1:標記伺服器和預覽伺服器資料流程的圖表。

本指南說明如何:

  • 查看 Docker 映像檔的所有可用設定。
  • (選用) 包含 BigQuery 憑證
  • 使用 SST Docker 映像檔手動佈建預覽伺服器。
  • 使用 SST Docker 映像檔手動佈建 SST 叢集。
  • 確認預覽伺服器和 SST 叢集設定正確。
  • 佈建伺服器後,請將標記伺服器版本保持在更新狀態。

如要執行本指南中的 Docker 指令,請先在電腦上安裝 Docker

查看 Docker 映像檔的所有可用設定

標記伺服器 Docker 映像檔可於以下網址找到:

gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable

標記伺服器和預覽伺服器使用相同的 Docker 映像檔,但兩者 旗標本節將說明如何查詢所有可用設定 該映像檔可與 Docker 映像檔搭配使用

如要查看所有可用設定,請使用 docker 指令列工具

docker run gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable server_bin.js --help

(選用) 包含 Google Cloud 憑證

如要在 Google Cloud 以外的地方使用 BigQueryFirestore API,您必須 提供有權存取這些憑證的服務帳戶憑證 再複習一下,機構節點 是所有 Google Cloud Platform 資源的根節點

  1. 按照這份指南,使用 BigQuery 資料建立服務帳戶 BigQuery 的編輯者角色,或是以下項目的 Cloud Datastore 使用者角色: Firestore 存取並匯出其 JSON 憑證,檔案名稱為 local_service_account_key.json
  2. 將 JSON 憑證掛接至映像檔可存取的磁碟區。使用 docker run,您可以指定 -v local_service_account_key.json:/app/service_account_key.json 來掛接 憑證
  3. GOOGLE_APPLICATION_CREDENTIALS 環境變數指向 憑證
  4. 視需要在 GOOGLE_CLOUD_PROJECT 環境變數,可讓標記伺服器 間接選擇專案
  5. 執行伺服器。下列指令會使用 包含的憑證:

    docker run -v local_service_account_key.json:/app/service_account_key.json \
    -p 8080:8080 \
    -e GOOGLE_APPLICATION_CREDENTIALS='/app/service_account_key.json' \
    -e GOOGLE_CLOUD_PROJECT='<your project id>' \
    -e CONTAINER_CONFIG='<config string>' \
    gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
    

視標記伺服器部署的系統而定 以不同的方式掛接憑證舉例來說,KubernetesDocker Swarm 提供密鑰管理指南。請參閱 系統指南。

請務必遵循最佳做法保護您的憑證。

手動佈建預覽伺服器

預覽伺服器可讓您預覽伺服器容器。如要執行預覽伺服器,請將下列環境變數傳遞至 Docker 環境,然後執行 Docker 映像檔。

必要設定

  • CONTAINER_CONFIG:伺服器容器的設定字串。於 代碼管理工具,前往伺服器容器工作區,然後按一下 建立容器 ID按一下「手動佈建標記伺服器」,找出「容器設定」值。

  • RUN_AS_PREVIEW_SERVER:設為 true 即可將伺服器佈建為 預覽伺服器

使用 Docker 指令列工具的範例

如要在本機佈建預覽伺服器,請執行下列指令:

docker run -p 8080:8080 -e CONTAINER_CONFIG='<config string>' -e RUN_AS_PREVIEW_SERVER=true gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable

您應該會看到要求傳送至 http://localhost:8080/healthz。您也可以選擇使用 PORT 環境變數 即可變更通訊埠。

最佳做法

  • 您必須只部署 1 個預覽伺服器。不要設定自動調度資源功能 超過 1 個執行個體
  • 使用 Docker 設定預覽伺服器後,請將 HTTPS 網址設為 指向預覽伺服器設定 SST 叢集時需要執行這項操作。
  • 負載平衡器或 CDN 的逾時時間必須超過 20 秒。 否則預覽模式將無法正常運作

手動佈建伺服器端標記叢集

SST 叢集會做為進入點,透過 Proxy 將預覽要求傳送至 預覽伺服器,並依照 伺服器端代碼簡介。請使用下列必要設定 其中含有標記伺服器 Docker 映像檔,以便在任意位置中佈建 SST 叢集 支援 Docker 的環境

必要設定

  • CONTAINER_CONFIG - 伺服器容器的設定字串。於 代碼管理工具,前往伺服器容器工作區,然後按一下 建立容器 ID按一下「手動佈建」 標記伺服器找出容器設定值。

  • PREVIEW_SERVER_URL - 預覽伺服器的 HTTPS 網址。這項設定 應僅在佈建標記伺服器時設定, 佈建預覽伺服器。請參閱上述章節,瞭解 設定預覽伺服器。

使用 Docker 指令列工具的範例

如要在本機佈建單一標記伺服器,請執行下列指令:

docker run -p 8080:8080 -e CONTAINER_CONFIG='<config string>' -e PREVIEW_SERVER_URL='<HTTPS preview server url>' gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable

您應該會在對 http://localhost:8080/healthz 的要求中看到 200 回應。 您也可以使用 PORT 環境變數來變更通訊埠。

最佳做法

  • 伺服器端標記伺服器可佈建為單一伺服器或 做為叢集使用為提高安全性,建議您佈建叢集為叢集 可用性、擴充性和效能請注意,在以叢集形式佈建時,每個伺服器執行個體都必須使用相同的 CONTAINER_CONFIGPREVIEW_SERVER_URL 環境變數進行設定。
  • 請務必將 SST 叢集部署作業指向您 獨立於放送您應用程式的子網域。 舉例來說,如果您的應用程式在 example.com 提供網路流量,請使用 代碼伺服器的子網域,例如 analytics.example.com
  • 使用 Docker 設定 SST 叢集後,請設定 HTTPS 網址,指向 SST 叢集。
  • 請務必定期重新啟動伺服器,確保伺服器 最新的 SST 程式碼更新。否則新 SST 功能可能會出現不相容的功能。得知伺服器 重新啟動就是設定有效性檢查,詳情請參閱下文。 另請注意,凡是已發布的伺服器容器更新, 仍會套用,不再重新啟動
  • 使用現有的 /healthz 端點 (例如 https://analytics.example.com/healthz) 位於標記伺服器 有效性檢查健康狀態不良的回應表示伺服器應 重新啟動。
  • Docker 容器包含預設健康狀態檢查指令 HEALTHCHECK CMD ["/nodejs/bin/node", "/app/health_checker_bin.js"],可查詢 定期為 /healthz 端點。如果您需要使用 Docker 健康狀態檢查 如要變更設定,請按照 Docker 操作說明進行。
  • 如果預覽伺服器和標記伺服器位於相同來源,代管 預覽伺服器位在與標記伺服器不同路徑上請指定 PREVIEW_SERVER_URL,包含路徑。
  • 佈建的伺服器最多只能有 1 個 vCPU。額外的 vCPU 數量 並對自動調度資源功能造成負面影響

驗證

設定伺服器容器網址

在代碼管理工具中,前往伺服器容器。前往「管理 > 收納盒 設定將標記伺服器的網址放入伺服器容器網址 ] 欄位,然後按一下 [儲存]

透過預覽模式進行驗證

在代碼管理工具的工作區中,按一下「預覽」並 預覽網頁應該就會載入在另一個瀏覽器分頁中,瀏覽至 伺服器容器網址如果預覽頁面顯示已傳送的要求 則所有設定皆正確無誤

如果已將多個子網域對應至單一標記伺服器 如要在各個子網域上預覽,請在「伺服器容器網址」下方加上額外的「伺服器容器網址」 管理 >容器設定。如果提供了多個網址,所有網址路徑都必須一致 (網域名稱後方的資訊字串)。舉例來說,您可以預覽 example.com/abcexample2.com/abc,但無法預覽 example.com/abcexample2.com/def。如果有多個網址 新增後,[預覽] 按鈕旁就會出現一個圖示, 選取要預覽的網址

更新標記伺服器版本

gtm-cloud-image 映像檔包含 Node.js,以及 才能正常運作系統會定期為 安全修正及新功能建議您至少更新標記伺服器 (例如從 1.x.x 版升級至 2.x.x 版)。

如要更新 Docker 映像檔:

  1. 擷取目前的映像檔版本:gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
  2. 使用與先前部署作業相同的設定來部署伺服器。
  3. 更新單一預覽伺服器叢集中所有的標記伺服器
  4. 關閉所有舊的伺服器。

如何確認更新是否成功:

  1. 在伺服器容器中,按一下「預覽」按鈕啟動新的 偵錯工作階段,然後在另一個分頁中傳送要求。
  2. 在摘要中選取「Console」分頁標籤,並確認沒有任何 要求您更新標記伺服器的訊息。

代碼管理工具可能會顯示訊息,要求您更新標記伺服器 成功更新伺服器後最多一天不過,預覽 頁面會顯示標記伺服器版本的最新訊息。