自動佈建流程可以用來部署標記伺服器 只要按幾下滑鼠,就能使用 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 以外的地方使用 BigQuery
或 Firestore
API,您必須
提供有權存取這些憑證的服務帳戶憑證
再複習一下,機構節點
是所有 Google Cloud Platform 資源的根節點
- 按照這份指南,使用 BigQuery 資料建立服務帳戶
BigQuery
的編輯者角色,或是以下項目的 Cloud Datastore 使用者角色:Firestore
存取並匯出其 JSON 憑證,檔案名稱為local_service_account_key.json
。 - 將 JSON 憑證掛接至映像檔可存取的磁碟區。使用
docker run
,您可以指定-v local_service_account_key.json:/app/service_account_key.json
來掛接 憑證 - 將
GOOGLE_APPLICATION_CREDENTIALS
環境變數指向 憑證 - 視需要在
GOOGLE_CLOUD_PROJECT
環境變數,可讓標記伺服器 間接選擇專案 執行伺服器。下列指令會使用 包含的憑證:
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
視標記伺服器部署的系統而定 以不同的方式掛接憑證舉例來說,Kubernetes 和 Docker 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_CONFIG
和PREVIEW_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/abc
和 example2.com/abc
,但無法預覽 example.com/abc
和 example2.com/def
。如果有多個網址
新增後,[預覽] 按鈕旁就會出現一個圖示,
選取要預覽的網址
更新標記伺服器版本
gtm-cloud-image 映像檔包含 Node.js,以及 才能正常運作系統會定期為 安全修正及新功能建議您至少更新標記伺服器 (例如從 1.x.x 版升級至 2.x.x 版)。
如要更新 Docker 映像檔:
- 擷取目前的映像檔版本:
gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
。 - 使用與先前部署作業相同的設定來部署伺服器。
- 更新單一預覽伺服器和叢集中所有的標記伺服器。
- 關閉所有舊的伺服器。
如何確認更新是否成功:
- 在伺服器容器中,按一下「預覽」按鈕啟動新的 偵錯工作階段,然後在另一個分頁中傳送要求。
- 在摘要中選取「Console」分頁標籤,並確認沒有任何 要求您更新標記伺服器的訊息。
代碼管理工具可能會顯示訊息,要求您更新標記伺服器 成功更新伺服器後最多一天不過,預覽 頁面會顯示標記伺服器版本的最新訊息。