Services

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

  • Websites
  • APIs
  • Webhooks

Für diese Endpunkte verwenden wir unsere Scale-To-Zero-Technologie, um ungenutzte Ressourcen herunterzufahren und sie nur bei eingehenden Anfragen zu initialisieren.

Wie es funktioniert

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

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

Anforderungen an Container-Images

Jedes Container-Image wird bedarfsgesteuert initialisiert, daher muss jede auf DownToZero (DTZ) bereitgestellte Anwendung entsprechend konzipiert sein.

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

Umgebungsvariablen

Die Laufzeitumgebung stellt Ihrem Service die folgenden Umgebungsvariablen zur Verfügung:

variable setzbar Beschreibung
PORT ja Der Port, an dem Ihre Anwendung lauschen soll.
DTZ_ACCESS_TOKEN ja (Identität kann geändert werden) Ein JWT, das aus dem Kontext generiert wird und den Zugriff auf Ressourcen innerhalb des Kontexts erlaubt.
DTZ_CONTEXT_ID nein Der DTZ-Kontext, in dem die aktuelle Anwendung ausgeführt wird.

HTTP-Anfrage-Header

Die Laufzeitumgebung fügt die folgenden HTTP-Header in jede an Ihren Service weitergeleitete Anfrage ein:

header Beispielwert Beschreibung
X-Request-ID 5f2a9b4e-2e9e-4e6c-a2a3-9f2a1c3d4e5f Eindeutiger Bezeichner für die Anfrage. Nützlich zur Protokollkorrelation und zum Tracing über Komponenten hinweg.
X-Forwarded-Host api.example.com Der ursprüngliche Host-Wert, den der Client angefragt hat. Wird verwendet, um absolute URLs zu generieren oder für Multi-Tenant-Routing.
X-Forwarded-Proto https Das ursprüngliche Protokoll, das vom Client verwendet wurde. Für öffentliche Endpunkte bei DTZ ist dies immer https.

Diese Header werden von der Plattform bereitgestellt und spiegeln den clientseitigen Anfragekontext wider; Ihre Anwendung sollte sie als nur-lesbare Eingaben behandeln.