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 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.
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.
- Incluye 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 de 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, veremos cómo buscar toda la configuración disponible que se puede usar con la imagen de Docker.
Para ver toda la configuración disponible, 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)
A fin de 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 a fin de 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 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 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. 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.
Aprovisionar 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
: la string de configuración para el 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 el servidor de etiquetado de forma manual para encontrar el valor Container Config.RUN_AS_PREVIEW_SERVER
: configura esto comotrue
para aprovisionar el servidor como 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.
Aprovisiona un clúster de etiquetado del servidor de forma manual
El clúster de SST funciona como punto de entrada, representa mediante solicitudes de vista previa el 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
: la string de configuración para el 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 el servidor de etiquetado de forma manual para encontrar el valor Container Config.PREVIEW_SERVER_URL
: Es la URL HTTPS del servidor de vista previa. Esta configuración solo se debe establecer a fin de aprovisionar el servidor de etiquetado y no es necesaria para aprovisionar el 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, ejecuta 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 solo servidor 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 se aprovisiona un 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 de tu clúster 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 a fin de que estos 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 debe reiniciarse el servidor es configurar verificaciones de actividad, que se explican a continuación. Además, ten en cuenta que las actualizaciones publicadas en el contenedor del 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 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 mediante las instrucciones de Docker.
Validación
Configura la URL del contenedor del servidor
En Tag Manager, navega a tu contenedor del servidor. En Configuración del &Administrador de contenedores, 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ó, entonces todo está configurado de forma correcta.
Si asignaste varios subdominios a un solo servidor de etiquetado y deseas obtener una vista previa de cada uno, agrega URL de contenedor del servidor adicionales en Administración y configuración del contenedor. Si se proporcionan varias URL, todas las rutas de URL deben 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 en example.com/abc
y example2.com/def
. Si se agregan varias URL, verás un ícono junto al botón Vista previa que te permite seleccionar la URL en la que deseas obtener una vista previa.