Services

Les services sont des conteneurs déclenchés par un point de terminaison HTTP. Voici quelques exemples de services :

  • Sites web
  • API
  • Webhooks

Pour ces points de terminaison, nous utilisons notre technologie scale-to-zero pour arrêter les ressources inutilisées et ne les initialiser que lorsqu’une requête arrive.

Comment ça fonctionne

Lorsque vous créez un service, nous créons un point de terminaison public et émettons un certificat TLS valide pour celui-ci. Par défaut, ce point de terminaison héberge un serveur HTTP vide que vous pouvez utiliser pour tester votre configuration.

Lorsque vous nous fournissez une image de conteneur, nous remplaçons notre espace réservé statique par votre site web ou API.

Exigences pour l’image de conteneur

Chaque image de conteneur est initialisée à la demande, donc tout système déployé sur DownToZero (DTZ) doit être conçu en tenant compte de ce fonctionnement.

Par défaut, DTZ attend que le conteneur ouvre un port. Le premier port ouvert sera celui auquel DTZ se connectera et vers lequel il transférera la requête.

Variables d’environnement

Le runtime fournit les variables d’environnement suivantes à votre service :

variable modifiable description
PORT oui Le port sur lequel votre application doit écouter.
DTZ_ACCESS_TOKEN oui (l’identité peut être modifiée) Un JWT généré à partir du contexte qui permet d’accéder aux ressources dans ce contexte.
DTZ_CONTEXT_ID non Le contexte DTZ dans lequel l’application actuelle est en cours d’exécution.

En-têtes HTTP de la requête

Le runtime injecte les en-têtes HTTP suivants dans chaque requête transmise à votre service :

en-tête valeur exemple description
X-Request-ID 5f2a9b4e-2e9e-4e6c-a2a3-9f2a1c3d4e5f Identifiant unique de la requête. Utile pour corréler les logs et tracer à travers les composants.
X-Forwarded-Host api.example.com La valeur originale du champ Host demandée par le client. À utiliser lors de la génération d’URLs absolues ou pour le routage multi-locataires.
X-Forwarded-Proto https Le protocole original utilisé par le client. Pour les points de terminaison publics sur DTZ, c’est toujours https.

Ces en-têtes sont fournis par la plateforme et reflètent le contexte de la requête côté client ; votre application doit les considérer comme des entrées en lecture seule.