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

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

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

  • Подготовьте сервер тегов в App Engine Google Cloud Platform (GCP).
  • Обновите сервер тегов для обработки трафика в реальном времени.
  • Увеличьте или уменьшите количество серверов, на которых работает ваш контейнер Диспетчера тегов Google.

Предпосылки

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

1. Подготовить сервер

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

Пожалуйста, выберите способ предоставления

Начальная настройка сервера ( testing )

Конфигурация тестирования подходит для изучения продукта путем отправки небольшого количества тестового трафика и использования функции предварительного просмотра в диспетчере тегов. Эта конфигурация представляет собой класс экземпляра App Engine F1 в стандартной среде, и в большинстве случаев вы не понесете никаких затрат.

2. Использование App Engine в производственной среде

В production конфигурации каждый сервер стоит примерно 40 долларов США в месяц (USD). Каждый сервер представляет собой экземпляр App Engine с 1 виртуальным ЦП, 0,5 ГБ памяти и 10 ГБ на диске в гибкой среде.

См. раздел Управление расходами App Engine, чтобы узнать о выставлении счетов App Engine и о том, как настроить оповещения о выставлении счетов. Мы настоятельно рекомендуем настроить оповещение о выставлении счетов .

Мы рекомендуем использовать как минимум 3 сервера, чтобы снизить риск потери данных в случае сбоя сервера. Однако вы можете запустить меньше (или больше) серверов. Мы ожидаем, что автомасштабирование 3–6 серверов (по умолчанию) будет обрабатывать 50–200 запросов в секунду. Производительность зависит от количества тегов и того, что эти теги делают.

Чтобы настроить сервер тегов:

  1. Откройте облачную оболочку Google Cloud Platform.

  2. Установите проект Cloud Platform в Cloud Shell. Замените project ID проекта GCP, который вы отметили ранее:

    gcloud config set project project ID
    
  3. Чтобы перенастроить сервер тегов для производственной среды, запустите приведенный ниже сценарий установки. Выполните следующие задачи:

    1. Измените тип развертывания на production .
    2. Настройте дополнительные серверы для обслуживания рабочего трафика. Мы рекомендуем минимум три сервера.
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
    

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

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

Чтобы отключить ведение журнала запросов App Engine:

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

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

    NOT LOG_ID("requests")
    
  6. Нажмите кнопку « Обновить приемник » внизу.

Теперь запросы App Engine будут исключены из регистрации. Проверьте обозреватель журналов , чтобы убедиться, что новые запросы не появляются в журналах.

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

Развертывание тегов на стороне сервера по умолчанию размещается в домене App Engine. Мы рекомендуем вам изменить развертывание, чтобы использовать поддомен вашего веб-сайта.

Сопоставьте субдомен вашего веб-сайта с вашим сервером тегов .

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

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

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

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

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

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

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

5. Проверка

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

Предварительный просмотр нескольких 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. Учетные записи служб имеют неверные разрешения . Учетные записи служб Compute Engine и App Engine отвечают за развертывание и поддержку рабочего развертывания. По умолчанию они предварительно настроены с соответствующими разрешениями. Однако в некоторых случаях политика организации может привести к тому, что они будут неверными.

    1. Перейдите на страницу IAM & Admin на левой панели навигации в консоли Google Cloud.
    2. Найдите учетную запись службы Compute Engine <project_number>-compute@developer.gserviceaccount.com и учетную запись службы App Engine <project_name>@appspot.gserviceaccount.com .
    3. Обе сервисные учетные записи должны иметь роль Editor . Если у какой-либо учетной записи нет роли Editor , обновите роль, щелкнув значок карандаша справа от учетной записи, щелкнув раскрывающийся список существующей роли, прокрутив вверх и нажав «Проект» , а затем « Редактор» .
  2. Недостаточно квоты — рабочее развертывание потребляет квоту Compute Engine. Если в проекте недостаточно квоты, время развертывания может истечь при попытке выделить ресурсы.

    1. Перейдите на страницу IAM & Admin на левой панели навигации в консоли Google Cloud, затем нажмите вкладку « Квоты » на левой панели навигации.
    2. В верхней части страницы щелкните текстовое поле с надписью « Таблица фильтров » и введите Compute Engine API . Щелкните единственный результат.
    3. Убедитесь, что все статусы квот находятся в пределах лимита или отмечены зеленой галочкой.
    4. Найдите и нажмите на CPUs . Убедитесь, что текущее использование плюс количество развертываемых экземпляров по-прежнему ниже предела для региона развертывания.