本指南介绍了如何完成以下操作:
- 配置预览服务器,以便为容器启用预览功能。
- 配置代码植入服务器以处理实时流量。
- 增加或减少运行 Google 跟踪代码管理器容器的服务器数量。
- 在配置服务器后及时更新代码植入服务器的版本。
前提条件
- 您需要有一个 GCP 账号。如果没有,请创建一个新的 GCP 账号。
- 您需要有一个 GCP 结算账号。如果没有,请创建一个 GCP 结算账号(需要拥有 Billing Account Creator 角色)。
- 您需要拥有 Project Creator 和 Billing Account User 角色。详细了解如何添加角色。
配置预览服务器和代码植入服务器
您可以在 Google 跟踪代码管理器中自动配置 Cloud Run 服务,也可以在 Google Cloud 中手动进行配置。
修改服务配置
若要更改服务配置,请按以下步骤操作:
- 打开 Cloud Run。
- 选择需要调整的服务。
- 点击修改和部署新的修订版本。
- 做出所需更改,然后点击部署。
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 应用,以防止产生意外结算费用。
可选:多区域部署
如果您的网站面向全球,或者您想在服务中构建冗余,不妨将代码植入服务器部署到多个区域。
准备工作:
- 创建负载均衡器
- 记下您选择的 BACKEND_NAME。
如需向部署添加更多区域,请执行下列操作:
- 将 REGION 替换为部署预览服务器所在的区域。如果您按照命令行选项来配置预览和代码植入服务器,这一内容可能已经填好了。
- 将 CONTAINER_CONFIG 替换为跟踪代码管理器中的容器配置字符串。如果您按照命令行选项来配置预览和代码植入服务器,这一内容可能已经填好了。
- 将 NEW_REGION 替换为您想要在其中部署代码植入服务器的新区域。
- 将 BACKEND_NAME 替换为您在配置负载均衡器时选择的名称。
- 可选:如需添加其他区域,请替换 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 万个),则这些日志消息可能会产生高昂的日志记录费用。若要减少或削减日志记录费用,建议您停用请求日志记录。
若要停用请求日志记录,请按以下步骤操作:
- 在 Google Cloud Platform 中,打开日志路由器。确保您正在查看的项目与您的容器 ID 一致:
- 对于类型,请选择Cloud Logging 存储桶,名称则选择 _Default 行,再选择溢出菜单,然后点击修改接收器。
- 在接收器目标位置下,选择日志存储桶 _Default。
在选择要包含在接收器中的日志下另起一行。将以下规则添加到现有包含过滤器中:
NOT LOG_ID("run.googleapis.com/requests")
如果还要停用来自负载均衡器的日志记录,请另起一行并在现有包含过滤器中输入以下规则:
NOT LOG_ID("requests")
更新接收器以应用所做的更改。现在,这些请求将从日志记录中排除。
确认 Logs Explorer 日志中未显示任何新请求。
控制台日志记录
容器中的代码植入服务器、客户端或代码可能会将消息记录到控制台中,而这可能产生日志记录费用。若要减少或削减日志记录费用,您可以停用不需要的控制台日志消息。
识别不需要的控制台日志:
- 在 GCP 中,打开 Logs Explorer。
查找源自您的代码的所有不需要的日志消息。例如:
代码可能会发送以下日志:
const logToConsole = require('logToConsole'); logToConsole('Custom message: ' + data.param1); logToConsole('An important message to keep around!'); data.gtmOnSuccess()
在
textPayload
字段中查找相应的日志消息:
若要停用控制台日志消息,请执行以下操作:
- 在 Google Cloud Platform 中,打开日志路由器。确保您正在查看的项目与您的容器 ID 一致:
- 对于类型,请选择Cloud Logging 存储桶,名称则选择 _Default 行,再选择溢出菜单,然后点击修改接收器。
- 在接收器目标位置下,选择日志存储桶 _Default。
在选择要包含在接收器中的日志下另起一行。将以下规则添加到现有包含过滤器中:
NOT textPayload:"Custom message:"
对于控制台日志,请将 Custom message: 文本替换为您要停用的控制台日志中的子字符串。如需详细了解过滤器,请使用日志记录查询语言。
更新接收器以应用所做的更改。匹配的
logToConsole
消息应从日志记录中排除。确认 Logs Explorer 中未显示新的控制台日志消息。
2. 将部署映射到自定义网域
若要设置自定义网域,请使用全球外部应用负载均衡器。
3. 将服务器网址添加到 Google 跟踪代码管理器
您已配置服务器,接下来需要确保 Google 跟踪代码管理器知道其应使用您的服务器。
打开 Google 跟踪代码管理器。
点击要指向代码植入服务器的服务器容器。
在管理标签页 > 容器设置中打开服务器容器的设置。
点击添加网址,然后粘贴您的服务器的网址。
点击保存,然后返回到您的工作区。
4. 验证
设置好代码植入服务器后,请确保其可按预期运行。在跟踪代码管理器工作区中,点击预览按钮。如果预览页面成功加载,表示所有设置都正确无误。
预览多个网址
如果您将多个网域映射到了单个代码植入服务器,请确保将每个网址都添加到容器设置中。
如果您提供了多个网址,则所有路径(域名后面的字符串)必须相同。
正常运行 | 无法正常运行 |
---|---|
网址 1:example.com/abc 网址 2: example2.com/abc |
网址 1:example.com/abc 网址 2: example2.com/def |
如果您添加了多个网址,可通过预览按钮旁边的图标选择要预览的网址。
更新代码植入服务器的版本
新发布的代码植入服务器更新可修复安全漏洞且包含新功能。当跟踪代码管理器通知您进行更新时,建议至少对代码植入服务器的主要版本进行更新(例如,从版本 1.xx 升级到版本 2.xx)。
如需更新代码植入服务器,请使用您之前所用的设置部署新的修订版本。
- 打开 Cloud Run。
- 选择要更新的服务。
- 点击修改和部署新的修订版本。
- 确保将容器映像网址设置为
gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
,然后点击部署。
如需验证更新是否成功执行,请执行下列操作:
- 在服务器容器中,点击预览按钮启动新的调试会话,并在单独的标签页上发送请求。
- 在“摘要”中,选择控制台标签页,确保没有提示您更新代码植入服务器的消息。
跟踪代码管理器可能会显示要求您更新代码植入服务器的信息,最长持续到服务器成功更新后一天。不过,预览页面会显示与代码植入服务器版本相关的最新消息。