Dienste

Dienste sind Container, die durch einen HTTP-Endpunkt ausgelöst werden. Beispiele für Dienste sind:

  • Websites
  • APIs
  • Webhooks

Für diese Endpunkte verwenden wir unsere Scale-to-zero-Technologie, um ungenutzte Ressourcen herunterzufahren und sie nur zu initialisieren, wenn eine Anfrage eingeht.

Funktionsweise

Wenn Sie einen Dienst erstellen, richten wir einen öffentlichen Endpunkt ein und stellen ein gültiges TLS-Zertifikat dafür aus. Standardmäßig hostet dieser Endpunkt einen leeren HTTP-Server, den Sie zum Testen Ihrer Einrichtung verwenden können.

Wenn Sie uns ein Container-Image bereitstellen, ersetzen wir unseren statischen Platzhalter durch Ihre Website oder API.

Anforderungen an das Container-Image

Jedes Container-Image wird bei Bedarf initialisiert, daher sollte jedes System, das auf DownToZero (DTZ) bereitgestellt wird, darauf ausgelegt sein.

Standardmäßig wartet DTZ darauf, dass der Container einen beliebigen Port öffnet. Der erste geöffnete Port ist derjenige, an den DTZ anbindet und an den die Anfrage weitergeleitet wird.

Umgebungsvariablen

Die Laufzeit stellt Ihrem Dienst die folgenden Umgebungsvariablen zur Verfügung:

variable settable description
PORT ja Der Port, auf dem Ihre Anwendung lauschen sollte.
DTZ_ACCESS_TOKEN ja (Identität kann geändert werden) Ein JWT, das aus dem Kontext generiert wird und den Zugriff auf Ressourcen innerhalb dieses Kontexts ermöglicht.
DTZ_CONTEXT_ID nein Der DTZ-Kontext, in dem die aktuelle Anwendung läuft.

HTTP Request Headers

Die Laufzeit fügt bei jeder an Ihren Dienst weitergeleiteten Anfrage die folgenden HTTP-Header hinzu:

header example value description
X-Request-ID 5f2a9b4e-2e9e-4e6c-a2a3-9f2a1c3d4e5f Eindeutiger Bezeichner für die Anfrage. Nützlich, um Logs zu korrelieren und Traces über Komponenten hinweg zu verfolgen.
X-Forwarded-Host api.example.com Der ursprüngliche Host-Wert, den der Client angefragt hat. Verwenden Sie ihn beim Erstellen absoluter URLs oder für Multi-Tenant-Routing.
X-Forwarded-Proto https Das ursprüngliche Protokoll, das der Client verwendet hat. Für öffentliche Endpunkte auf DTZ ist dies immer https.

Diese Header werden von der Plattform bereitgestellt und geben den clientseitigen Anfragekontext wieder; Ihre Anwendung sollte sie als schreibgeschützte Eingaben behandeln.