Настройка тегов на стороне сервера с помощью Cloud Run

В этом руководстве объясняется, как:

  • Предоставьте сервер предварительного просмотра, чтобы включить функцию предварительного просмотра для контейнера.
  • Предоставьте сервер тегов для обработки живого трафика.
  • Увеличьте или уменьшите количество серверов, на которых работает ваш контейнер Диспетчера тегов Google.
  • После подготовки сервера обновляйте версию сервера тегов.

Предварительные условия

  1. Вам нужна учетная запись GCP. Если у вас его нет, создайте новую учетную запись GCP .
  2. Вам нужен платежный аккаунт GCP. Если у вас его нет, создайте платежный аккаунт GCP (требуется роль создателя платежного аккаунта).
  3. Вам потребуется роль создателя проекта и пользователя учетной записи выставления счетов. Узнайте больше о добавлении ролей .

Предоставление сервера предварительного просмотра и тегирования

Вы можете предоставить услугу Cloud Run автоматически в Диспетчере тегов Google или вручную в Google Cloud.

Отредактируйте конфигурацию службы

Чтобы изменить конфигурацию службы:

  1. Откройте Cloud Run .
  2. Выберите услугу, которую необходимо настроить.
  3. Нажмите «Редактировать и развернуть новую версию» .
  4. Внесите изменения и нажмите «Развернуть» .

Стоимость облачного запуска

В этой конфигурации Cloud Run каждый сервер стоит примерно 45 долларов США в месяц. Каждый сервер представляет собой экземпляр Cloud Run с 1 виртуальным ЦП и 0,5 ГБ памяти, использующий модель ценообразования, всегда выделяемую ЦП.

Мы рекомендуем запустить минимум 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

Необязательно: отключить ведение журнала

Запросить регистрацию

По умолчанию записывается информация о каждом отдельном запросе (например, путь запроса, параметры запроса и т. д.). Если ваш сервер тегов обрабатывает большое количество запросов в месяц (например, более 1 миллиона), за регистрацию этих сообщений журнала может взиматься значительная плата . Чтобы уменьшить или устранить плату за ведение журнала, мы рекомендуем отключить ведение журнала запросов.

Чтобы отключить регистрацию запросов:

  1. На платформе Google Cloud откройте Logs Router . Убедитесь, что вы находитесь в проекте, который соответствует идентификатору вашего контейнера:
    снимок экрана средства выбора проекта GCP, на котором показан пример идентификатора контейнера Диспетчера тегов.
  2. Для сегмента « Тип : Cloud Logging» , «Имя : _Default» выберите меню переполнения, затем нажмите «Редактировать приемник» .
  3. В разделе Место назначения выберите сегмент журналов _Default .
  4. В разделе «Выберите журналы для включения в сток » добавьте новую строку. Введите следующее правило в существующий фильтр включения:

    NOT LOG_ID("run.googleapis.com/requests")
    
  5. Чтобы также отключить ведение журнала балансировщика нагрузки, добавьте новую строку и введите следующее правило в существующий фильтр включения:

    NOT LOG_ID("requests")
    
  6. Обновите Sink, чтобы применить изменения. Теперь запросы будут исключены из логирования.

  7. Убедитесь, что в журналах обозревателя журналов не появляются новые запросы.

Ведение журнала консоли

Сервер тегов, клиенты или теги в контейнере могут регистрировать сообщения на консоли, за что может взиматься плата . Чтобы уменьшить или устранить плату за ведение журнала, вы можете отключить нежелательные сообщения журнала консоли.

Определите нежелательные журналы консоли:

  1. В GCP откройте обозреватель журналов .
  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 . Убедитесь, что вы находитесь в проекте, который соответствует идентификатору вашего контейнера:
    снимок экрана средства выбора проекта GCP, на котором показан пример идентификатора контейнера Диспетчера тегов.
  2. Для сегмента « Тип : Cloud Logging» , «Имя : _Default» выберите меню переполнения, затем нажмите «Редактировать приемник» .
  3. В разделе Место назначения выберите сегмент журналов _Default .
  4. В разделе «Выберите журналы для включения в сток » добавьте новую строку. Введите следующее правило в существующий фильтр включения:

    NOT textPayload:"Custom message:"
    

    Для журналов консоли замените текст Custom message: подстрокой из журнала консоли, которую вы хотите отключить. Для более сложных фильтров используйте язык запросов журналирования .

  5. Обновите Sink, чтобы применить изменения. Соответствующее сообщение logToConsole следует исключить из журнала.

  6. Убедитесь, что в обозревателе журналов не появляются новые сообщения журнала консоли.

2. Сопоставьте развертывание со своим личным доменом.

Чтобы настроить личный домен, используйте глобальный внешний балансировщик нагрузки приложений .

3. Добавьте URL-адрес сервера в Диспетчер тегов Google.

Теперь, когда у вас есть сервер, вам нужно убедиться, что Диспетчер тегов Google знает, что ему следует использовать ваш сервер.

  1. Откройте Диспетчер тегов Google.

  2. Нажмите на контейнер сервера, который вы хотите указать на свой сервер тегов.

  3. Откройте настройки контейнера вашего сервера на вкладке «Администратор» > «Настройки контейнера» .

  4. Нажмите «Добавить URL» и вставьте URL-адрес своего сервера.

  5. Сохраните и вернитесь в рабочее пространство.

4. Валидация

Теперь, когда вы настроили сервер тегов, убедитесь, что он работает должным образом. В рабочей области Диспетчера тегов нажмите кнопку «Предварительный просмотр» . Если страница предварительного просмотра загружается, значит все настроено правильно.

Предварительный просмотр нескольких URL-адресов

Если вы сопоставили несколько доменов с одним сервером тегов, убедитесь, что каждый URL-адрес добавлен в настройки контейнера.

Если вы указали несколько URL-адресов, все пути (строка после имени домена) должны совпадать.

Работает Не работает
URL 1: example.com/abc
URL 2: example2.com/abc
URL 1: example.com/abc
URL 2: example2.com/def

Если добавлено несколько URL-адресов, рядом с кнопкой «Предварительный просмотр» вы увидите значок, который позволит вам выбрать URL-адрес для предварительного просмотра.

Обновите версию сервера тегов

Новые обновления сервера тегов содержат исправления уязвимостей безопасности и новые функции. Мы рекомендуем по крайней мере обновлять сервер тегов для каждой основной версии (например, обновление с версии 1.xx до 2.xx), когда Диспетчер тегов уведомляет вас об обновлении.

Чтобы обновить сервер тегов, разверните новую версию, используя те же настройки, которые вы использовали ранее.

  1. Откройте Cloud Run .
  2. Выберите услугу, которую хотите обновить.
  3. Нажмите «Редактировать и развернуть новую версию» .
  4. Убедитесь, что для URL-адреса образа контейнера установлено значение gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable , и нажмите «Развернуть» .

Чтобы убедиться, что обновление прошло успешно:

  1. В контейнере вашего сервера нажмите кнопку «Предварительный просмотр» , чтобы начать новый сеанс отладки и отправить запрос на отдельной вкладке.
  2. В сводке выберите вкладку Консоль и убедитесь, что нет сообщений с просьбой обновить сервер тегов.

Диспетчер тегов может показывать сообщения с просьбой обновить сервер тегов в течение дня после успешного обновления сервера. Однако на странице предварительного просмотра будет отображаться актуальное сообщение о версии сервера тегов.