El flujo de aprovisionamiento automático se puede usar para desplegar el servidor de etiquetado en Cloud Run con solo unos clics. Si quieres aprovisionar el servidor de etiquetado en otros entornos, puedes hacerlo manualmente. El servidor de etiquetado es un servidor Node.js ubicado dentro de una imagen Docker.
Para aprovisionar manualmente el servidor de etiquetado es necesario aprovisionar el clúster de etiquetado en el servidor (SST) y un servidor de vista previa por separado. El clúster de SST es el punto de entrada de todas las solicitudes enviadas al servidor de etiquetado y se encargará de gestionarlas tal como se indica en el artículo Introducción al etiquetado del lado del servidor. Para previsualizar un contenedor se necesita un servidor de vista previa.
En la figura 1 puedes ver una ilustración de la interacción de datos entre los servidores de etiquetado y el servidor de vista previa.
Figura 1: Diagrama del flujo de datos entre los servidores de etiquetado y el servidor de vista previa.
En esta guía se explica cómo hacer lo siguiente:
- Ver todos los ajustes disponibles de la imagen Docker.
- (Opcional) Incluir credenciales de BigQuery.
- Aprovisionar manualmente un servidor de vista previa mediante la imagen Docker de SST.
- Aprovisionar manualmente un clúster de SST mediante la imagen Docker de SST.
- Verificar que el servidor de vista previa y el clúster de SST estén configurados correctamente.
- Mantener actualizada la versión del servidor de etiquetado después de aprovisionar el servidor.
Para ejecutar los comandos de Docker que se indican en esta guía, primero debes instalar Docker en tu ordenador.
Ver todos los ajustes disponibles de la imagen Docker
La imagen Docker del servidor de etiquetado se encuentra en esta URL:
gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
El servidor de etiquetado y el de vista previa usan la misma imagen Docker con marcas diferentes. En esta sección, te enseñaremos a buscar todos los ajustes que se pueden usar con la imagen Docker.
Para ver todos los ajustes 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
(Opcional) Incluir credenciales de Google Cloud
Para usar la API BigQuery
o Firestore
fuera de Google Cloud, debes proporcionar una credencial de la cuenta de servicio autorizada para acceder a esos recursos.
- Sigue las instrucciones de esta guía para crear una cuenta de servicio con el rol de editor de datos de BigQuery para acceder a
BigQuery
o el rol de usuario de Cloud Datastore para acceder aFirestore
y exportar sus credenciales JSON con el nombre de archivolocal_service_account_key.json
. - Activa las credenciales JSON en un volumen al que pueda acceder la imagen. Si usas
docker run
, puedes especificar-v local_service_account_key.json:/app/service_account_key.json
para activar las credenciales de la imagen. - Dirige la variable de entorno
GOOGLE_APPLICATION_CREDENTIALS
a la credencial. - Si quieres, puedes especificar el ID de tu proyecto de Google Cloud en la variable de entorno
GOOGLE_CLOUD_PROJECT
para que el servidor de etiquetado seleccione el proyecto de forma implícita. Ejecuta el servidor. El comando siguiente 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
En función del sistema en el que se haya implementado el servidor de etiquetado, es posible que haya diferentes formas de activar las credenciales. Por ejemplo, Kubernetes y Docker Swarm proporcionan guías para gestionar secretos. Consulta más información en la guía de tu sistema.
Sigue las prácticas recomendadas para proteger tus credenciales.
Aprovisionar manualmente un servidor de vista previa
Los servidores de vista previa permiten previsualizar contenedores de servidores. Para ejecutar el servidor de vista previa, ejecuta la imagen Docker con las siguientes variables de entorno enviadas al entorno Docker.
Ajustes obligatorios
CONTAINER_CONFIG
: es la cadena de configuración del contenedor del servidor. En Tag Manager, desplázate hasta el espacio de trabajo del contenedor de servidor y haz clic en el ID del contenedor, situado en la parte superior derecha de la página. A continuación, haz clic en Aprovisionar manualmente servidor de etiquetado para buscar el valor de Configuración del contenedor.RUN_AS_PREVIEW_SERVER
: debe tener el valortrue
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 el código 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ía devolver una respuesta 200 procedente de una solicitud hecha a http://localhost:8080/healthz
. También puedes usar la variable de entorno PORT
para cambiar el puerto.
Prácticas recomendadas
- Debes desplegar exactamente un servidor de vista previa. No configures el autoescalado en más de una instancia.
- Una vez configurado el servidor de vista previa con Docker, configura una URL de HTTPS para que apunte al servidor de vista previa. Este paso es necesario para configurar el clúster de SST.
- Tu balanceador de carga o CDN deben tener un tiempo de espera de más de 20 segundos; de lo contrario, el modo de vista previa no funcionará correctamente.
Aprovisionar manualmente un clúster de etiquetado del lado del servidor
El clúster de SST funciona como punto de entrada, transmite las solicitudes de vista previa al servidor de vista previa y gestiona las demás solicitudes tal como se indica en el artículo Introducción al etiquetado del lado del servidor. Usa los siguientes ajustes obligatorios con la imagen Docker del servidor de etiquetado para aprovisionar un clúster de SST en cualquier entorno que admita Docker.
Ajustes obligatorios
CONTAINER_CONFIG
: es la cadena de configuración del contenedor del servidor. En Tag Manager, desplázate hasta el espacio de trabajo del contenedor de servidor y haz clic en el ID del contenedor, situado en la parte superior derecha de la página. A continuación, haz clic en Aprovisionar manualmente servidor de etiquetado para buscar el valor de Configuración del contenedor.PREVIEW_SERVER_URL
: es la URL de HTTPS del servidor de vista previa. Este ajuste solo se debe definir para aprovisionar el servidor de etiquetado y no es necesario para aprovisionar el servidor de vista previa. Consulta la sección anterior, en la que se explica cómo configurar el servidor de vista previa.
Ejemplo con la herramienta de línea de comandos de Docker
Para aprovisionar un único 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 procedente de una solicitud realizada a http://localhost:8080/healthz
.
También puedes utilizar la variable de entorno PORT
para cambiar el puerto.
Prácticas recomendadas
- Los servidores de etiquetado del lado del servidor se pueden aprovisionar como un único servidor o como un clúster. Te recomendamos que los aprovisiones como un clúster para mejorar la disponibilidad, la escalabilidad y el rendimiento. Ten en cuenta que, al aprovisionarse como un clúster, cada instancia del servidor debe configurarse con las mismas variables de entorno
CONTAINER_CONFIG
yPREVIEW_SERVER_URL
. - Procura que la implementación del clúster de SST apunte a un nuevo subdominio de tu sitio web; un subdominio que sea independiente del que sirve la aplicación. Por ejemplo, si la aplicación sirve tráfico web en example.com, apunta el clúster a un subdominio como analytics.example.com.
- Una vez configurado el clúster de SST con Docker, configura una URL de HTTPS para que apunte al clúster de SST.
- Debes reiniciar los servidores de forma periódica para tener las actualizaciones de código de SST más recientes. De lo contrario, es posible que las nuevas funciones de SST no sean compatibles. Una forma de saber cuándo es necesario reiniciar el servidor es configurando comprobaciones de vivacidad (liveness). En el punto de abajo se explica cómo hacerlo. Además, ten en cuenta que cualquier actualización que se publique en el contenedor del servidor se seguirá aplicando sin reiniciar.
- Usa el endpoint
/healthz
que haya (por ejemplo,https://analytics.example.com/healthz
) en los servidores de etiquetado para configurar las comprobaciones de vivacidad. Si la respuesta no es correcta, quiere decir que se debe reiniciar el servidor. - El contenedor Docker incluye un comando predeterminado de comprobación de estado (
HEALTHCHECK CMD ["/nodejs/bin/node", "/app/health_checker_bin.js"]
) que consulta periódicamente el endpoint/healthz
. Si dependes de la comprobación del estado de Docker, puedes cambiar la configuración siguiendo las instrucciones de Docker. - Si el servidor de vista previa y el de etiquetado se encuentran en el mismo origen, aloja el servidor de vista previa en una ruta diferente a la del servidor de etiquetado. Especifica el valor de
PREVIEW_SERVER_URL
, incluida la ruta. - Los servidores aprovisionados deben tener como máximo una vCPU. Las vCPUs adicionales no se utilizan y afectan negativamente al autoescalado.
Validación
Configurar la URL del contenedor de servidor
En Tag Manager, desplázate a tu contenedor del servidor. En Administrar > Configuración del contenedor, escribe la URL del servidor de etiquetado en el campo URL del contenedor de servidor y haz clic en Guardar.
Verificar mediante el modo de vista previa
En el espacio de trabajo de Tag Manager, haz clic en Vista previa para previsualizar el contenedor y comprueba que se cargue la página de vista previa. En otra pestaña del navegador, desplázate a cualquier ruta de la URL del contenedor del servidor. Si la página de vista previa muestra la solicitud enviada, quiere decir que todo está configurado correctamente.
Si has asignado varios subdominios a un único servidor de etiquetado y quieres obtener una vista previa en cada uno, añade URLs de contenedores de servidor adicionales en Administrar > Configuración del contenedor. Si se proporcionan varias URLs, todas las rutas de URL (la cadena de información que aparece después del nombre de dominio) deben coincidir. Por ejemplo, puedes previsualizar un contenedor en example.com/abc
y en example2.com/abc
, pero no en example.com/abc
y en example2.com/def
. Si se añaden varias URLs, junto al botón Vista previa verás un icono que te permite seleccionar la URL en la que quieres obtener la vista previa.
Actualizar 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 Docker se actualiza periódicamente para aplicar correcciones de seguridad y añadir nuevas funciones. Te recomendamos actualizar el servidor de etiquetado como mínimo cada vez que se lance una versión principal (por ejemplo, actualizar de la versión 1.x.x a la 2.x.x).
Para actualizar tu imagen Docker:
- Obtén la versión actualizada de la imagen en
gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
. - Despliega tu servidor con la misma configuración del despliegue anterior.
- Actualiza el servidor de vista previa único y todos los servidores de etiquetado del clúster.
- Inhabilita los servidores antiguos.
Para verificar que la actualización se haya realizado correctamente:
- En el contenedor de servidor, haz clic en el botón Vista previa para empezar una nueva sesión de depuración y envía una solicitud de depuración en otra pestaña.
- En Resumen, selecciona la pestaña Consola y comprueba que no haya ningún mensaje que indique que debes actualizar el servidor de etiquetado.
En Tag Manager, puede que sigan apareciendo mensajes en los que se te pide que actualices el servidor de etiquetado hasta un día después de que lo hayas actualizado. Sin embargo, en la página de vista previa se mostrará un mensaje en el que la versión del servidor de etiquetado estará actualizada.