Guía de configuración manual

El flujo de aprovisionamiento automático se puede usar para implementar el servidor de etiquetado en Cloud Run con unos pocos clics. Si deseas aprovisionar el servidor de etiquetado en otros entornos, puedes hacerlo de forma manual. El servidor de etiquetado es un servidor de Node.js dentro de una imagen de Docker.

El aprovisionamiento manual del servidor de etiquetado requiere el aprovisionamiento del clúster de etiquetado del servidor (SST) y un servidor de vista previa por separado. El clúster de SST es el punto de entrada de todas las solicitudes al servidor de etiquetado y manejará las solicitudes como se describe en Introducción al etiquetado del servidor. El servidor de vista previa es necesario para obtener una vista previa de un contenedor.

Consulta la figura 1 para ver una ilustración de la interacción de datos entre los servidores de etiquetado y el servidor de vista previa.

Diagrama de servidores de etiquetado y flujo de datos del servidor de vista previa

Figura 1: Un diagrama de los servidores de etiquetado y el flujo de datos del servidor de vista previa.

En esta guía, se explica cómo hacer lo siguiente:

  • Ver toda la configuración disponible para la imagen de Docker.
  • Incluye credenciales de BigQuery (opcional)
  • Aprovisiona de forma manual un servidor de vista previa con la imagen de Docker de SST.
  • Aprovisiona de forma manual un clúster de SST con la imagen de Docker de SST.
  • Verifica que el servidor de vista previa y el clúster de SST estén configurados de forma correcta.
  • Mantén actualizada la versión del servidor de etiquetado después de aprovisionar el servidor.

Para ejecutar los comandos de Docker en esta guía, primero debes instalar Docker en tu computadora.

Ver toda la configuración disponible para la imagen de Docker

La imagen de Docker del servidor de etiquetado se puede encontrar en esta URL:

gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable

El servidor de etiquetado y el servidor de vista previa usan la misma imagen de Docker con diferentes marcas. En esta sección, revisaremos cómo buscar todas las opciones de configuración disponibles que se pueden usar con la imagen de Docker.

Para ver todos los parámetros de configuración disponibles, ejecuta el siguiente comando con la herramienta de línea de comandos de Docker:

docker run gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable server_bin.js --help

Incluye credenciales de Google Cloud (opcional)

Para usar la API de BigQuery o Firestore fuera de Google Cloud, debes proporcionar una credencial de cuenta de servicio que esté autorizada para acceder a esos recursos.

  1. Sigue esta guía para crear una cuenta de servicio con la función de Editor de datos de BigQuery para el acceso BigQuery o la función de Usuario de Cloud Datastore para el acceso a Firestore. Además, exporta tus credenciales JSON con el nombre de archivo local_service_account_key.json.
  2. Activa la credencial JSON en un volumen al que pueda acceder la imagen. Con docker run, puedes especificar -v local_service_account_key.json:/app/service_account_key.json para activar las credenciales en la imagen.
  3. Apunta la variable de entorno GOOGLE_APPLICATION_CREDENTIALS a la credencial.
  4. De manera opcional, especifica el ID del proyecto de Google Cloud en la variable de entorno GOOGLE_CLOUD_PROJECT para permitir que el servidor de etiquetado elija el proyecto de forma implícita.
  5. Ejecuta el servidor. El siguiente comando ejecuta el servidor de etiquetado con las credenciales incluidas:

    docker run -v local_service_account_key.json:/app/service_account_key.json \
    -p 8080:8080 \
    -e GOOGLE_APPLICATION_CREDENTIALS='/app/service_account_key.json' \
    -e GOOGLE_CLOUD_PROJECT='<your project id>' \
    -e CONTAINER_CONFIG='<config string>' \
    gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
    

Según el sistema en el que se implemente el servidor de etiquetado, puede haber diferentes formas de activar las credenciales. Por ejemplo, Kubernetes y Docker Swarm proporcionan guías para administrar secretos. Consulta la guía del sistema correspondiente para obtener más información.

Asegúrate de seguir las prácticas recomendadas para proteger tus credenciales.

Aprovisiona manualmente un servidor de vista previa

El servidor de vista previa te permite obtener una vista previa del contenedor de servidor. Para ejecutar el servidor de vista previa, ejecuta la imagen de Docker con las siguientes variables de entorno que se pasaron al entorno de Docker.

Configuración obligatoria

  • CONTAINER_CONFIG: Es la cadena de configuración del contenedor de servidor. En Tag Manager, navega al lugar de trabajo del contenedor de servidor y haz clic en el ID del contenedor en la parte superior derecha de la página. Haz clic en Aprovisionar manualmente el servidor de etiquetado para encontrar el valor de Container Config.

  • RUN_AS_PREVIEW_SERVER: Establece esto como true para aprovisionar el servidor como un servidor de vista previa.

Ejemplo con la herramienta de línea de comandos de Docker

Para aprovisionar un servidor de vista previa de forma local, ejecuta lo siguiente:

docker run -p 8080:8080 -e CONTAINER_CONFIG='<config string>' -e RUN_AS_PREVIEW_SERVER=true gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable

Deberías poder ver una respuesta 200 de una solicitud a http://localhost:8080/healthz. De manera opcional, usa la variable de entorno PORT para cambiar el puerto.

Prácticas recomendadas

  • Debes implementar exactamente 1 servidor de vista previa. No configures el ajuste de escala automático más allá de 1 instancia.
  • Una vez que hayas configurado un servidor de vista previa con Docker, configura una URL HTTPS para que apunte al servidor de vista previa. Esto es necesario para configurar el clúster de SST.
  • Tu balanceador de cargas o CDN debe tener un tiempo de espera superior a 20 segundos. De lo contrario, el modo de vista previa no funcionará correctamente.

Aprovisiona manualmente un clúster de etiquetado del servidor

El clúster de SST funciona como punto de entrada, envía las solicitudes de vista previa al servidor de vista previa y controla todas las demás solicitudes como se describe en Introducción al etiquetado del servidor. Usa la siguiente configuración necesaria con la imagen de Docker del servidor de etiquetado para aprovisionar un clúster de SST en cualquier entorno que admita Docker.

Configuración obligatoria

  • CONTAINER_CONFIG: Es la cadena de configuración del contenedor de servidor. En Tag Manager, navega al lugar de trabajo del contenedor de servidor y haz clic en el ID del contenedor en la parte superior derecha de la página. Haz clic en Aprovisionar manualmente el servidor de etiquetado para encontrar el valor de Container Config.

  • PREVIEW_SERVER_URL: Es la URL HTTPS para el servidor de vista previa. Esta configuración solo se debe establecer para aprovisionar el servidor de etiquetado y no es necesaria para aprovisionar el servidor de vista previa. Consulta la sección anterior si deseas obtener una guía para configurar el servidor de vista previa.

Ejemplo con la herramienta de línea de comandos de Docker

Para aprovisionar un solo servidor de etiquetado de forma local, ejecuta el siguiente comando:

docker run -p 8080:8080 -e CONTAINER_CONFIG='<config string>' -e PREVIEW_SERVER_URL='<HTTPS preview server url>' gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable

Deberías ver una respuesta 200 de una solicitud a http://localhost:8080/healthz. De manera opcional, usa la variable de entorno PORT para cambiar el puerto.

Prácticas recomendadas

  • Los servidores de etiquetado del servidor se pueden aprovisionar como un solo servidor o como un clúster. Te recomendamos que lo aprovisiones como un clúster para mejorar la disponibilidad, la escalabilidad y el rendimiento. Ten en cuenta que, cuando aprovisiones un clúster, cada instancia de servidor debe configurarse con las mismas variables de entorno CONTAINER_CONFIG y PREVIEW_SERVER_URL.
  • Asegúrate de apuntar la implementación del clúster de SST a un subdominio nuevo en tu sitio web que sea independiente del subdominio que entrega tu aplicación. Por ejemplo, si tu aplicación entrega tráfico web en example.com, usa un subdominio como analytics.example.com para tu servidor de etiquetado.
  • Una vez que hayas configurado un clúster de SST mediante Docker, configura una URL HTTPS para que apunte al clúster de SST.
  • Asegúrate de reiniciar los servidores de forma periódica para garantizar que tengan las actualizaciones de código más recientes de SST. De lo contrario, es posible que se genere una funcionalidad incompatible con las nuevas funciones de SST. Una forma de saber cuándo se debe reiniciar el servidor es configurar verificaciones de actividad, que se explican más adelante. Además, ten en cuenta que las actualizaciones publicadas en tu contenedor de servidor se aplicarán sin reiniciar.
  • Utiliza el extremo /healthz existente (p.ej., https://analytics.example.com/healthz) en tus servidores de etiquetado para configurar las verificaciones de funcionamiento. Una respuesta que no está en buen estado indica que el servidor debe reiniciarse.
  • El contenedor de Docker incluye un comando de verificación de estado predeterminado, HEALTHCHECK CMD ["/nodejs/bin/node", "/app/health_checker_bin.js"], que consulta el extremo /healthz de forma periódica. Si dependes de la verificación de estado de Docker, puedes cambiar la configuración siguiendo las instrucciones de Docker.
  • Si el servidor de vista previa y el de etiquetado están en el mismo origen, aloja el servidor de vista previa en una ruta diferente a la del servidor de etiquetado. Especifica el PREVIEW_SERVER_URL, incluida la ruta de acceso.
  • Los servidores aprovisionados deben tener 1 CPU virtual como máximo. No se usan CPU virtuales adicionales y afectan el ajuste de escala automático de manera negativa.

Datos

Configura la URL del contenedor de servidor

En Tag Manager, navega a tu contenedor de servidor. En Administrador > Configuración del contenedor, coloca la URL del servidor de etiquetado en el campo URL del contenedor del servidor y haz clic en Guardar.

Cómo verificar con el modo de vista previa

En el lugar de trabajo de Tag Manager, haz clic en Vista previa para obtener una vista previa del contenedor y verifica que se cargue la página de vista previa. En otra pestaña del navegador, navega a cualquier ruta en la URL del contenedor de servidor. Si la página de vista previa muestra la solicitud que se envió, significa que todo está configurado de forma correcta.

Si asignaste varios subdominios a un solo servidor de etiquetado y deseas obtener una vista previa de cada subdominio, agrega URLs de contenedor del servidor adicionales en Administrador > Configuración del contenedor. Si se proporcionan varias URLs, todas las rutas de URL deben coincidir (la cadena de información que aparece después del nombre de dominio). Por ejemplo, puedes obtener una vista previa en example.com/abc y example2.com/abc, pero no puedes obtener una vista previa en example.com/abc y example2.com/def. Si se agregan varias URLs, verás un ícono junto al botón Preview que te permite seleccionar la URL de la que deseas obtener una vista previa.

Actualiza la versión del servidor de etiquetado

La imagen gtm-cloud-image contiene Node.js y las bibliotecas necesarias para que funcione el servidor de etiquetado. La imagen de Docker se actualiza de forma periódica para las correcciones de seguridad y las funciones nuevas. Recomendamos que actualices al menos tu servidor de etiquetado para cada versión principal (p.ej., actualizar de la versión 1.x.x a la 2.x.x).

Para actualizar tu imagen de Docker, sigue estos pasos:

  1. Recupera la versión actual de la imagen en gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable.
  2. Implementa tu servidor con la misma configuración que en la implementación anterior.
  3. Actualiza el único servidor de vista previa y todos los servidores de etiquetado del clúster.
  4. Apaga los servidores antiguos.

Para verificar que la actualización se realizó correctamente, sigue estos pasos:

  1. En el contenedor de servidor, haz clic en el botón Vista previa para iniciar una sesión de depuración nueva y enviar una solicitud en otra pestaña.
  2. En el resumen, selecciona la pestaña Console y asegúrate de que no haya mensajes que te soliciten actualizar el servidor de etiquetado.

Tag Manager puede mostrar mensajes en los que se te solicita que actualices el servidor de etiquetado hasta un día después de que el servidor se actualice correctamente. Sin embargo, la página de vista previa mostrará un mensaje actualizado sobre la versión del servidor de etiquetado.