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

本指南說明如何:

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

必要條件

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

佈建預覽和標記伺服器

您可以在 Google 代碼中自動佈建 Cloud Run 服務 管理員或手動在 Google Cloud 中手動操作

編輯服務設定

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

  1. 開啟 Cloud Run
  2. 選取您要調整的服務。
  3. 按一下 [編輯(&S)]部署新的修訂版本。
  4. 進行變更,然後按一下「部署」

Cloud Run 費用

以這項 Cloud Run 設定來說,每部伺服器每月約為 $45 美元 (USD).每個伺服器都是 Cloud Run 執行個體 使用 CPU 的 1 個 vCPU 和 0.5 GB 記憶體 一律分配的定價模式

建議您至少執行 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 Platform 中開啟 記錄檔路由器:請確認 您所在的專案與容器 ID 相符:
    GCP 專案選取器的螢幕截圖,顯示代碼管理工具容器範例
編號。
  2. 在「Type」(類型) 部分,選取 Cloud Logging bucket (名稱):「Name」(名稱):_Default,然後選取 溢位選單,然後按一下「Edit Sink」(編輯接收器)
  3. 在「接收器目的地」下方,選取記錄檔值區 _Default
  4. 在「選擇要納入接收器的記錄」下方,新增一行。輸入 現有「包含」篩選器的規則:

    NOT LOG_ID("run.googleapis.com/requests")
    
  5. 如要一併停用負載平衡器的記錄功能,請新增一行,然後輸入 將下列規則套用至現有的「包含」篩選器:

    NOT LOG_ID("requests")
    
  6. 更新接收器以套用變更。現在系統會排除要求 。

  7. 確認 記錄檔探索工具記錄檔。

控制台記錄功能

容器中的標記伺服器、用戶端或代碼可以將訊息記錄到 可能產生記錄費用的控制台。 如要減少或消除記錄費用,您可以停用不需要的控制台 記錄訊息

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

  1. 在 GCP 中開啟 記錄檔探索工具
  2. 找出來自代碼的任何不必要的記錄訊息。例如:

    標記可能會傳送下列記錄:

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

    在「 textPayload 欄位:
    GCP 記錄檔探索工具的螢幕截圖,顯示範例
。

如何停用控制台記錄訊息:

  1. 在 Google Cloud Platform 中開啟 記錄檔路由器:請確認 您所在的專案與容器 ID 相符:
    GCP 專案選取器的螢幕截圖,顯示代碼管理工具容器範例
編號。
  2. 在「Type」(類型) 部分,選取 Cloud Logging bucket (名稱):「Name」(名稱):_Default,然後選取 溢位選單,然後按一下「Edit Sink」(編輯接收器)
  3. 在「接收器目的地」下方,選取記錄檔值區 _Default
  4. 在「選擇要納入接收器的記錄」下方,新增一行。輸入 將下列規則套用至現有的「包含」篩選器:

    NOT textPayload:"Custom message:"
    

    如要保留控制台記錄,請將 Custom message: 文字 其中包含您要停用的控制台記錄中的子字串。如要 請使用精細的篩選器 記錄查詢語言

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

  6. 確認 記錄檔探索工具

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

如要設定自訂網域,請使用全域外部應用程式負載平衡器

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 版) 就會通知您更新

如要更新標記伺服器,請使用相同設定部署新的修訂版本 不同的 Deployment

  1. 開啟 Cloud Run
  2. 選取要更新的服務。
  3. 按一下 [編輯(&S)]部署新的修訂版本。
  4. 確認「容器映像檔網址」已設為 gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable,然後按一下「部署」

如何確認更新是否成功:

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

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