El flujo de aprovisionamiento automático se puede usar para implementar el servidor de etiquetado en App Engine con solo unos 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 aprovisionar el 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 para todas las solicitudes al servidor de etiquetado y controlará las solicitudes como se describe en Una introducción al etiquetado del servidor. El servidor de vista previa es necesario para obtener la 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.
Figura 1: Diagrama de los servidores de etiquetado y vista previa del flujo de datos del servidor.
En esta guía, se explica cómo hacer lo siguiente:
- Ver toda la configuración disponible para la imagen de Docker.
- Incluya credenciales de BigQuery (opcional)
- Aprovisiona manualmente un servidor de vista previa con la imagen de Docker de SST.
- Aprovisiona un clúster de SST de forma manual 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 encuentra en la siguiente 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, veremos cómo buscar todos los parámetros de configuración disponibles que se pueden usar con la imagen de Docker.
Para ver toda la configuración disponible, ejecuta lo siguiente 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 autorizada para acceder a esos recursos.
- Sigue esta guía para crear una cuenta de servicio con la función de editor de datos de BigQuery para el acceso de
BigQuery
o la función de usuario de Cloud Datastore para acceder aFirestore
y exportar sus credenciales JSON con el nombre de archivolocal_service_account_key.json
. - 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. - Apunta la variable de entorno
GOOGLE_APPLICATION_CREDENTIALS
a la credencial. - De manera opcional, especifica tu 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. 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 el Swarm de Docker proporcionan guías para administrar secretos. Consulta la guía de tu sistema correspondiente para obtener más información.
Asegúrate de seguir las prácticas recomendadas para proteger tus credenciales.
Aprovisione manualmente un servidor de vista previa
El servidor de vista previa te permite obtener una vista previa del contenedor del servidor. Para ejecutar el servidor de vista previa, ejecuta la imagen de Docker con las siguientes variables de entorno que se pasan al entorno de Docker.
Configuración obligatoria
CONTAINER_CONFIG
: Es la string de configuración del contenedor del servidor. En Tag Manager, navega al lugar de trabajo del contenedor del 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 comotrue
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 el siguiente comando:
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.
- El balanceador de cargas o la CDN deben tener un tiempo de espera superior a 20 segundos. De lo contrario, el modo de vista previa no funcionará correctamente.
Aprovisionar 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 compatible con Docker.
Configuración obligatoria
CONTAINER_CONFIG
: Es la string de configuración del contenedor del servidor. En Tag Manager, navega al lugar de trabajo del contenedor del 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 del servidor de vista previa. Esta configuración solo debe establecerse para aprovisionar el servidor de etiquetado y no es necesaria para el aprovisionamiento del servidor de vista previa. Consulta la sección anterior para obtener una guía sobre cómo configurar el servidor de vista previa.
Ejemplo con la herramienta de línea de comandos de Docker
Para aprovisionar un solo servidor de etiquetado local, ejecute lo siguiente:
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 servidor único o como un clúster. Te recomendamos aprovisionarlo como un clúster para mejorar la disponibilidad, la escalabilidad y el rendimiento. Ten en cuenta que, cuando aprovisionas como clúster, cada instancia de servidor debe configurarse con las mismas variables de entorno
CONTAINER_CONFIG
yPREVIEW_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.
- Después de configurar 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 a fin de asegurarte de que tengan las actualizaciones de código más recientes para SST. De lo contrario, es posible que se generen funciones incompatibles para las funciones nuevas de SST. Una forma de saber cuándo es necesario reiniciar el servidor es configurar verificaciones de actividad, que se explican a continuación. Además, ten en cuenta que las actualizaciones publicadas del contenedor de tu servidor se seguirán aplicando sin reiniciar.
- Usa el extremo
/healthz
existente (p.ej.,https://analytics.example.com/healthz
) en tus servidores de etiquetado para configurar las verificaciones de actividad. Una respuesta no en buen estado indica que el servidor debe reiniciarse. - El contenedor de Docker incluye un comando predeterminado de verificación de estado,
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 según 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 de acceso diferente a la del servidor de etiquetado. Especifica el
PREVIEW_SERVER_URL
que incluye 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 forma negativa.
Validación
Configura la URL del contenedor del servidor
En Tag Manager, navega al contenedor de tu servidor. En Administrar > Configuración del contenedor, coloca la URL del servidor de etiquetado en el campo URL del contenedor del servidor y haz clic en Guardar.
Verificar mediante 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 observa que se carga la página de vista previa. En otra pestaña del navegador, navega a cualquier ruta en la URL del contenedor del servidor. Si la página de vista previa muestra la solicitud que se envió, significa que todo está configurado correctamente.
Si asignaste varios subdominios a un solo servidor de etiquetado y deseas obtener una vista previa de cada subdominio, agrega URLs de contenedores del servidor adicionales en Administrador > Configuración del contenedor. Si se proporcionan varias URLs, todas las rutas de URL deberán coincidir (la string 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 URL, verás un ícono junto al botón Obtener vista previa que te permitirá seleccionar la URL de la que quieres obtener una vista previa.
Actualice la versión del servidor de etiquetado
La imagen gtm-cloud-image contiene Node.js y las bibliotecas necesarias para que el servidor de etiquetado funcione. La imagen de Docker se actualiza periódicamente para obtener correcciones de seguridad y funciones nuevas. Te recomendamos que actualices al menos tu servidor de etiquetado para cada versión principal de la versión (p.ej., actualizar de la versión 1.x.x a la 2.x.x).
Para actualizar tu imagen de Docker, haz lo siguiente:
- Recupera la versión de la imagen actual en
gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
. - Implementa tu servidor con la misma configuración de la implementación anterior.
- Actualice el servidor de vista previa único y todos los servidores de etiquetado del clúster.
- Apaga los servidores antiguos.
Para verificar que la actualización se realizó de forma correcta, sigue estos pasos:
- En el contenedor del servidor, haz clic en el botón Vista previa para iniciar una nueva sesión de depuración y enviar una solicitud en otra pestaña.
- En el resumen, selecciona la pestaña Consola y asegúrate de que no haya mensajes que te soliciten actualizar el servidor de etiquetado.
Es posible que Tag Manager te muestre mensajes que te soliciten actualizar el servidor de etiquetado hasta un día después de que el servidor se haya actualizado correctamente. Sin embargo, la página de vista previa mostrará un mensaje actualizado sobre la versión del servidor de etiquetado.