使用 Cloud Run 設定伺服器端標記

本指南將說明如何:

  • 佈建預覽伺服器,為容器啟用預覽功能。
  • 佈建標記伺服器,以便處理即時流量。
  • 增加或減少執行 Google 代碼管理工具容器的伺服器數量。
  • 佈建伺服器後,請持續更新標記伺服器版本。

必要條件

  1. 您需要 GCP 帳戶。如果沒有,請建立新的 GCP 帳戶
  2. 您需要 GCP 帳單帳戶。如果沒有,請建立 GCP 帳單帳戶 (需要具備「帳單帳戶建立者」角色)。
  3. 您需要具備「專案建立者」和「帳單帳戶使用者」角色。進一步瞭解如何新增角色

佈建預覽和標記伺服器

您可以自動在 Google Tag Manager 中佈建 Cloud Run 服務,也可以手動在 Google Cloud 中佈建。

編輯服務設定

如要變更服務設定,請按照下列步驟操作:

  1. 開啟 Cloud Run
  2. 選取需要調整的服務。
  3. 按一下「Edit & Deploy New Revision」
  4. 進行變更後,按一下「Deploy」

Cloud Run 費用

在這個 Cloud Run 設定中,每部伺服器的費用約為每月 $45 美元。每個伺服器都是 Cloud Run 執行個體,具有1 個 vCPU 和 0.5 GB 記憶體,並使用 CPU 一律分配的定價模式。

建議您至少執行 2 個執行個體,以降低在伺服器中斷服務時資料遺失的風險。不過,您可以選擇執行較少 (或較多) 伺服器。我們預期自動調整大小的 2 至 10 部伺服器每秒可處理 35 至 350 個要求,但效能會因標記數量和標記功能而異。

Cloud Run 會根據負載量動態調整規模。max-instances 設定是指最糟糕的情況,也就是您需要為資源支付的費用。除非必要,否則 Cloud Run 不會佈建這麼多執行個體。

Cloud Run 計算機

選用:從 App Engine 遷移

如果您先前建立了 App Engine 部署作業,並已確認該部署作業不再接收任何流量,請停用 App Engine 應用程式,以免產生意外的帳單費用。

選用:多區域部署

如果您的網站在全球都有服務據點,或是您想在服務中建立備援機制,請將標記伺服器部署至多個區域

事前準備:

  1. 建立負載平衡器
  2. 請記下您選擇的 BACKEND_NAME

如要為部署作業新增更多區域,請按照下列步驟操作:

  1. REGION 替換為部署預覽伺服器的區域。如果您按照指令列選項設定預覽和標記伺服器,這項資訊可能已填入。
  2. CONTAINER_CONFIG 替換為代碼管理工具中的容器設定字串。如果您已按照指令列選項設定預覽和標記伺服器,這項資訊可能已填入。
  3. NEW_REGION 替換為您要部署代碼標記伺服器的新區域。
  4. BACKEND_NAME 替換為您在配置負載平衡器時選擇的名稱。
  5. 選用:如要新增其他區域,請替換 NEW_REGION 變數,然後重新執行程式碼程式碼片段。
    gcloud run deploy "server-side-tagging" \
    --region NEW_REGION \
    --image gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable \
    --platform managed \
    --ingress all \
    --min-instances 2 \
    --max-instances 10 \
    --timeout 60 \
    --allow-unauthenticated \
    --no-cpu-throttling \
    --update-env-vars PREVIEW_SERVER_URL="$(
      gcloud run services describe server-side-tagging-preview \--region "REGION" \
      --format="value(status.url)")",CONTAINER_CONFIG="CONTAINER_CONFIG" && \

    gcloud compute network-endpoint-groups create server-side-tagging-neg \
    --region=NEW_REGION \
    --network-endpoint-type=SERVERLESS \
    --cloud-run-service="server-side-tagging" && \

    gcloud compute backend-services add-backend --global "BACKEND_NAME" \
    --network-endpoint-group-region=NEW_REGION \
    --network-endpoint-group=server-side-tagging-neg

選用:停用記錄功能

要求記錄

根據預設,系統會記錄每項要求的相關資訊 (例如要求路徑、查詢參數等)。如果您的代碼標記伺服器每月處理大量要求 (例如超過 100 萬個),這些記錄訊息可能會產生大量記錄費用。如要減少或取消記錄作業的費用,建議您停用要求記錄功能。

如要停用要求記錄功能,請按照下列指示操作:

  1. 在 Google Cloud 平台中,開啟 Logs Router。請確認您所在的專案與容器 ID 相符:
    GCP 專案選擇器的螢幕截圖,顯示範例的 Google 代碼管理工具容器 ID。
  2. 針對「Type」Cloud Logging 值區「Name」_Default 行,請選取溢出選單,然後按一下「Edit Sink」
  3. 在「Sink destination」(接收器目的地) 下方,選取記錄檔值區 _Default
  4. 在「Choose logs to include in sink」(選擇要納入接收器的記錄檔) 下方,新增一行。在現有的納入篩選器中輸入下列規則:

    NOT LOG_ID("run.googleapis.com/requests")
    
  5. 如要同時停用負載平衡器的記錄功能,請新增一行,並在現有的納入篩選器中輸入下列規則:

    NOT LOG_ID("requests")
    
  6. 更新接收器即可套用變更。系統現在會將要求排除在記錄作業之外。

  7. 確認 Logs Explorer 記錄檔中沒有任何新要求。

控制台記錄

容器中的代碼伺服器、用戶端或代碼,可能會將訊息記錄到主控台,而這可能會產生記錄費用。如要減少或取消記錄作業的費用,您可以停用不必要的控制台記錄訊息。

找出不需要的控制台記錄:

  1. 在 GCP 中,開啟「Logs Explorer」
  2. 找出來自標記的任何不必要的記錄訊息。例如:

    代碼可能會傳送下列記錄:

    const logToConsole = require('logToConsole');
    
    logToConsole('Custom message: ' + data.param1);
    logToConsole('An important message to keep around!');
    data.gtmOnSuccess()
    

    textPayload 欄位中尋找對應的記錄訊息:
    GCP Logs Explorer 的螢幕截圖,顯示記錄檔範例。

如要停用主控台記錄訊息,請按照下列步驟操作:

  1. 在 Google Cloud 平台中,開啟 Logs Router。請確認您所在的專案與容器 ID 相符:
    GCP 專案選擇器的螢幕截圖,顯示範例的 Google 代碼管理工具容器 ID。
  2. 針對「Type」Cloud Logging 值區「Name」_Default 行,請選取溢出選單,然後按一下「Edit Sink」
  3. 在「Sink destination」(接收器目的地) 下方,選取記錄檔值區 _Default
  4. 在「Choose logs to include in sink」(選擇要納入接收器的記錄檔) 下方,新增一行。在現有的納入篩選器中輸入下列規則:

    NOT textPayload:"Custom message:"
    

    針對主控台記錄檔,請將 Custom message: 文字替換為您要停用的記錄檔子字串。如需更精細的篩選器,請使用記錄查詢語言

  5. 更新接收器即可套用變更。相符的 logToConsole 訊息應從記錄中排除。

  6. 確認 Logs Explorer 中沒有顯示任何新的控制台記錄訊息。

2. 將部署作業對應至自訂網域

設定自訂網域,使用 Cloud Run 提供的預設位址以外的網域。

3. 將伺服器網址新增至 Google 代碼管理工具

有了伺服器後,您需要確保 Google 代碼管理工具知道應使用您的伺服器。

  1. 開啟 Google 代碼管理工具

  2. 按一下要指向標記伺服器的伺服器容器。

  3. 依序點選「管理」分頁標籤 >「容器設定」,開啟伺服器容器設定。

  4. 按一下「新增網址」,然後貼上伺服器網址。

  5. 按一下「儲存」,然後返回工作區。

4. 驗證

標記伺服器設定完成後,請確認標記伺服器是否正常運作。在代碼管理工具工作區中,按一下「預覽」按鈕。如果預覽頁面載入,表示一切設定都正確無誤。

預覽多個網址

如果您已將多個網域對應至單一標記伺服器,請確認已將每個網址新增至容器設定。

如果您提供多個網址,所有路徑 (網域名稱後面的字串) 都必須一致。

作品 無法運作
網址 1:example.com/abc
網址 2:example2.com/abc
網址 1:example.com/abc
網址 2:example2.com/def

如果您新增了多個網址,系統會在「預覽」按鈕旁顯示圖示,方便您選取要預覽的網址。

更新標記伺服器版本

新的標記伺服器更新包含安全性漏洞修正和新功能。建議您至少在代碼管理工具通知您更新時,為每個主要版本更新標記伺服器 (例如從 1.x.x 升級至 2.x.x)。

如要更新代碼標記伺服器,請使用先前相同的設定部署新修訂版本。

  1. 開啟 Cloud Run
  2. 選取要更新的服務。
  3. 按一下「Edit & Deploy New Revision」
  4. 確認「容器映像檔網址」已設為 gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable,然後按一下「部署」

如要確認更新是否成功,請按照下列步驟操作:

  1. 在伺服器容器中,按一下「Preview」按鈕,即可啟動新的偵錯工作階段,並在另一個分頁中傳送要求。
  2. 在「摘要」中,選取「控制台」分頁標籤,並確認沒有要求您更新標記伺服器的訊息。

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