Configurar un servidor de vista previa privado

Esta guía va dirigida a desarrolladores que usan Cloud Run para aplicar etiquetado del lado del servidor y quieren configurar un servidor de vista previa privado.

El etiquetado del lado del servidor te permite previsualizar cambios en el etiquetado en modo de vista previa y depuración antes de aplicarlos. Esto es fundamental en el flujo de trabajo de desarrollo para comprobar que las etiquetas funcionan como deberían. Para habilitar esta función se necesita dos despliegues de Cloud Run: uno para el servidor de etiquetado y otro para el servidor de vista previa. En esta guía encontrarás más información sobre cómo se comunican los dos servidores y cómo configurarlos en un entorno empresarial.

Introducción

Cuando despliegas el etiquetado del lado del servidor en Cloud Run, puedes hacerlo con o sin un balanceador de carga. En los despliegues multirregionales, necesitas un balanceador de carga para dirigir el tráfico a la instancia más cercana.

Sin balanceador de carga

Sin balanceador de carga

Figura 1: Despliegue sin balanceador de carga.

Con balanceador de carga

Con balanceador de carga

Figura 2: Despliegue con balanceador de carga.

En ambos despliegues, el punto de entrada tanto del servidor de vista previa como del entorno de etiquetado de producción es la misma URL (por ejemplo, sgtm.example.com). El servidor de etiquetado se despliega en una variable de entorno llamada PREVIEW_SERVER_URL que representa la URL del servidor de vista previa.

Cuando visitas tagmanager.google.com y abres el modo de vista previa, Tag Manager accede a sgtm.example.com?id=[gtm_server_id]&gtm_auth=[auth_id]&gtm_preview=[env_id] y activa una cookie. Cuando usas el mismo navegador para ir al sitio web objetivo, las solicitudes enviadas a sgtm.example.com también incluyen la cookie. Por eso, el servidor de etiquetado sabe que se trata de tus eventos y solo los envía al servidor de vista previa para que puedas consultarlos y solucionar problemas.

El servidor de etiquetado envía esos eventos a través de solicitudes HTTP a la URL definida en la variable de entorno PREVIEW_SERVER_URL.

Acerca de los servidores de vista previa públicos

Este comportamiento predeterminado requiere que el servidor de vista previa sea público. Sin embargo, esto supone un problema para algunas organizaciones porque tienen restricciones sobre las infraestructuras que pueden ser públicas y habitualmente aplican medidas de seguridad adicionales a través de un balanceador de carga. Un balanceador de carga te ofrece:

  • Más control sobre las funciones, como políticas SSL para restringir los paquetes de cifrado.
  • Integración nativa con Cloud Armor para cortafuegos de aplicación web (WAF) o denegación de servicio distribuido (DDoS).
  • Funciones avanzadas de gestión del tráfico.

Enrutar el servidor de vista previa a través de un balanceador de carga

Para crear un servidor de vista previa privado, usa un enrutamiento basado en hosts a través del balanceador de carga con un subdominio adicional. En el resto de esta guía se explica cómo enrutar el servidor de vista previa a través de un balanceador de carga.

Requisitos

  • Servidor de etiquetado desplegado en Cloud Run mediante un balanceador de carga.
  • Acceso al proyecto de Google Cloud.
  • Acceso al nuevo subdominio del servidor de vista previa, por ejemplo, preview.sgtm.example.com.

Paso 1: Actualizar la variable de entorno con un nuevo subdominio

Para usar el nuevo dominio del servidor de vista previa, actualizar la variable de entorno PREVIEW_SERVER_URL del servidor de etiquetado del lado del servidor:

  1. Abre Cloud Run.
  2. Selecciona el servidor de etiquetado.
  3. Haz clic en Editar y Desplegar nueva revisión.
  4. En la pestaña Variables y secretos, ve a la sección Contenedores y cambia PREVIEW_SERVER_URL al nuevo dominio. Por ejemplo: preview.sgtm.example.com.

Paso 2: Configurar el balanceador de carga para que use enrutamiento basado en hosts

Para configurar el balanceador de carga, usa el enrutamiento basado en hosts y dirige el tráfico al servidor adecuado:

  1. En Cloud Run, abre la página Balanceo de carga y haz clic en el nombre del balanceador de carga.
  2. Haz clic en el botón Editar.
  3. Haz clic en la página Configuración de backend y abre el desplegable Servicios y segmentos de backend.
  4. Haz clic en Crear un servicio de backend y sigue estos pasos:
    1. Ponle un nombre adecuado (por ejemplo, preview-backend-service).
    2. Selecciona el tipo de backend Grupo de endpoints de red sin servidor.
  5. En la sección Backend, crea un nuevo grupo de endpoints de red sin servidor y sigue estos pasos:
    1. Ponle nombre y selecciona la región donde se aloja el servidor de vista previa.
    2. Selecciona Cloud Run como tipo de grupo de endpoints de red sin servidor y elige el servidor de vista previa como servicio.
    3. Haz clic en Crear.
  6. Cambia los ajustes que necesites o quédate con los predeterminados. Después, haz clic en Crear.

Paso 3: Añade una regla y actualiza el control de entrada

Para añadir una regla a la nueva URL de host y actualizar el control de entrada, sigue estos pasos:

  1. Abre la página Reglas de host y ruta.
  2. Añade una regla en la que:
    • El host sea la nueva URL: preview.sgtm.example.com
    • La ruta sea: /*
    • El backend sea: preview-backend-service
  3. Haz clic en el botón Actualizar para volver a desplegar el balanceador de carga.
  4. En Cloud Run, abre el servidor de vista previa y selecciona la pestaña Redes.
  5. Cambia Control de entrada a Interno y marca la opción Permitir tráfico de balanceadores de carga de aplicación externos para que no sea accesible públicamente.

Resultado: La arquitectura del servidor ahora debería parecerse a la figura 3, donde las solicitudes de tráfico se dirigen al servidor de etiquetado, que puede redirigirlas al servidor de vista previa.

Enrutamiento basado en hosts

Figura 3: Uso del enrutamiento basado en hosts.

Comprobar la configuración

Para comprobar la configuración:

  1. Abre Google Tag Manager.
  2. Abre tu contenedor de servidor.
  3. Haz clic en Administrar > Configuración del contenedor y define la URL del servidor de vista previa como URL de contenedor de servidor.
  4. Cierra la ventana y previsualiza el espacio de trabajo. Se abrirá la ventana de depuración. Cuando navegues por tu sitio web, los eventos deberían aparecer en la ventana de depuración.