Servicios

Los servicios son contenedores que se activan mediante un endpoint HTTP. Ejemplos de servicios incluyen:

  • Sitios web
  • APIs
  • Webhooks

Para estos endpoints, usamos nuestra tecnología scale-to-zero para apagar recursos no utilizados e inicializarlos solo cuando llega una solicitud.

Cómo Funciona

Cuando creas un servicio, creamos un endpoint público y emitimos un certificado TLS válido para él. Por defecto, este endpoint aloja un servidor HTTP vacío que puedes usar para probar tu configuración.

Cuando nos proporcionas una imagen de contenedor, reemplazamos nuestro marcador estático con tu sitio web o API.

Requisitos de la Imagen del Contenedor

Cada imagen de contenedor se inicializa bajo demanda, por lo que cualquier sistema desplegado en DownToZero (DTZ) debe ser diseñado teniendo esto en cuenta.

Por defecto, DTZ espera que el contenedor abra cualquier puerto. El primer puerto que se abra será al que DTZ se conectará y reenviará la solicitud.

Variables de Entorno

El entorno de ejecución proporciona las siguientes variables de entorno a tu servicio:

variable configurable descripción
PORT El puerto en el que tu aplicación debe escuchar.
DTZ_ACCESS_TOKEN sí (la identidad puede cambiar) Un JWT generado desde el contexto que permite acceder a recursos dentro del contexto.
DTZ_CONTEXT_ID no El contexto DTZ en el que está corriendo la aplicación actual.

Encabezados de Solicitud HTTP

El entorno de ejecución inyecta los siguientes encabezados HTTP en cada solicitud reenviada a tu servicio:

encabezado valor de ejemplo descripción
X-Request-ID 5f2a9b4e-2e9e-4e6c-a2a3-9f2a1c3d4e5f Identificador único para la solicitud. Útil para correlacionar logs y trazabilidad entre componentes.
X-Forwarded-Host api.example.com El valor original de Host que el cliente solicitó. Útil para generar URLs absolutas o para enrutamiento multi-inquilino.
X-Forwarded-Proto https El protocolo original utilizado por el cliente. Para endpoints públicos en DTZ esto siempre es https.

Estos encabezados son proporcionados por la plataforma y reflejan el contexto de la solicitud que llega al cliente; tu aplicación debe tratarlos como entradas de solo lectura.