Как настроить частный сервер предварительного просмотра

Это руководство предназначено для разработчиков, которые используют Cloud Run для добавления тегов на стороне сервера и хотят настроить частный сервер предварительного просмотра.

При добавлении тегов на стороне сервера вы можете посмотреть и отладить внесенные изменения, прежде чем их применять. Это важная часть процесса разработки, которая позволяет обеспечить правильную работу тегов. Чтобы использовать такую возможность, нужно настроить два развертывания Cloud Run: отдельно для сервера тегов и для сервера предварительного просмотра. В этом руководстве подробно описано, как взаимодействуют эти два сервера и как их настроить в корпоративной среде.

Общие сведения

Добавление тегов на стороне сервера можно развернуть в Cloud Run с балансировщиком нагрузки или без него. При развертывании в нескольких регионах балансировщик нагрузки понадобится, чтобы направлять трафик к ближайшему экземпляру.

Без балансировщика нагрузки

Без балансировщика нагрузки

Рисунок 1. Развертывание без балансировщика нагрузки.

С балансировщиком нагрузки

С балансировщиком нагрузки

Рисунок 2. Развертывание с балансировщиком нагрузки.

В обоих вариантах развертывания точкой входа как для сервера предварительного просмотра, так и для рабочей среды добавления тегов будет один URL (например, sgtm.example.com). Сервер тегов развертывается с переменной среды PREVIEW_SERVER_URL, которая представляет URL сервера предварительного просмотра.

Когда вы переходите на сайт tagmanager.google.com и запускаете режим предварительного просмотра, Менеджер тегов создает на сервере sgtm.example.com?id=[gtm_server_id]&gtm_auth=[auth_id]&gtm_preview=[env_id] файл cookie. Когда вы затем просматриваете целевой сайт в том же браузере, вместе с запросами, которые отправляются на сервер sgtm.example.com, также передается созданный файл cookie. Благодаря этому сервер тегов понимает, что это ваши события, и перенаправляет их только на сервер предварительного просмотра, чтобы вы могли устранить возможные неполадки.

Для перенаправления этих событий сервер тегов посылает HTTP-запросы к URL, указанному в переменной среды PREVIEW_SERVER_URL.

Общедоступные серверы предварительного просмотра

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

  • дополнительный контроль над некоторыми функциями, например правилами SSL, для ограничения наборов шифров;
  • интеграция с Cloud Armor, которая открывает доступ к брандмауэру для веб-приложений (WAF) и защищает от распределенных атак типа "отказ в обслуживании" (DDoS);
  • расширенные возможности управления трафиком.

Как направить трафик на сервер предварительного просмотра через балансировщик нагрузки

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

Требования

  • Сервер тегов, развернутый в Cloud Run и размещенный после балансировщика нагрузки.
  • Доступ к проекту Google Cloud.
  • Доступ к новому субдомену сервера предварительного просмотра, например preview.sgtm.example.com.

Шаг 1. Укажите в переменной среды новый субдомен

Чтобы использовать новый домен сервера предварительного просмотра, обновите переменную среды добавления тегов на стороне сервера (PREVIEW_SERVER_URL):

  1. Откройте Cloud Run.
  2. Выберите сервер тегов.
  3. Нажмите Edit (Изменить), а затем Deploy new revision (Развернуть новую версию).
  4. На вкладке Variables and secrets (Переменные и секреты) в разделе Containers (Контейнеры) укажите в переменной PREVIEW_SERVER_URL новый домен, например preview.sgtm.example.com.

Шаг 2. Настройте балансировщик нагрузки для маршрутизации на базе хоста

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

  1. В Cloud Run откройте страницу Load balancing (Балансировка нагрузки) и выберите нужный балансировщик нагрузки.
  2. Нажмите кнопку Edit (Изменить).
  3. Перейдите на страницу Backend configuration (Конфигурация серверной группы) и откройте раскрывающийся список Backend services and backend buckets (Серверные службы и серверные сегменты).
  4. Нажмите Create a backend service (Создать серверную службу) и сделайте следующее:
    1. Укажите название службы (например, preview-backend-service).
    2. Выберите тип Serverless network endpoint group (Бессерверная группа конечных точек сети).
  5. В разделе Backend (Серверная часть) создайте бессерверную группу конечных точек сети и сделайте следующее:
    1. Укажите название группы и выберите регион, в котором размещен сервер предварительного просмотра.
    2. Выберите тип группы Cloud Run, а в качестве службы укажите сервер предварительного просмотра.
    3. Нажмите Create (Создать).
  6. При необходимости измените другие настройки или оставьте значения по умолчанию и нажмите Create (Создать).

Шаг 3. Добавьте новое правило и измените параметры контроля входящего трафика

Чтобы добавить правило для нового URL хоста и изменить параметры контроля входящего трафика, сделайте следующее:

  1. Откройте страницу Host and path rules (Правила обработки хостов и путей).
  2. Добавьте новое правило со следующими параметрами:
    • хост – новый URL (preview.sgtm.example.com);
    • путь – /*;
    • серверная служба – preview-backend-service.
  3. Нажмите кнопку Update (Обновить), чтобы повторно развернуть балансировщик нагрузки.
  4. Вернитесь в Cloud Run, откройте сервер предварительного просмотра и перейдите на вкладку Networking (Сеть).
  5. Измените параметры Ingress control (Контроль входящего трафика) на Internal (Внутренний) и установите флажок Allow traffic from external application load balancers (Разрешить трафик из внешних балансировщиков нагрузки приложений), чтобы ограничить доступ к хосту.

Результат. Теперь ваша серверная архитектура должна выглядеть так, как показано на рисунке 3, где все запросы трафика направляются на сервер тегов, который может перенаправлять их на сервер предварительного просмотра.

Маршрутизация на базе хоста

Рисунок 3. Маршрутизация на базе хоста.

Как проверить настройки

Чтобы проверить настройки, сделайте следующее:

  1. Перейдите в Google Менеджер тегов.
  2. Откройте серверный контейнер.
  3. Нажмите Администрирование > Настройки контейнера и в качестве адреса серверного контейнера укажите URL сервера предварительного просмотра.
  4. Закройте окно и запустите предварительный просмотр в рабочей области. Откроется окно отладки. По мере того как вы будете переходить по страницам своего сайта, в этом окне будут отображаться события, связанные с вашими действиями.