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 erst zu initialisieren, wenn eine Anfrage eingeht.

Funktionsweise

Wenn Sie einen Service erstellen, erstellen 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 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 bedarfsorientiert initialisiert, daher muss jedes System, das auf DownToZero (DTZ) bereitgestellt wird, entsprechend konzipiert sein.

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

Umgebungsvariablen

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

Variable setzbar Beschreibung
PORT ja Der Port, auf dem Ihre Anwendung zuhören 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-Anfrageheader

Die Laufzeit 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 Ein eindeutiger Bezeichner für die Anfrage. Nützlich zum Korrigieren von Logs und zur Nachverfolgung über Komponenten hinweg.
X-Forwarded-Host api.example.com Der ursprüngliche vom Client angeforderte Host-Wert. Wird verwendet, um absolute URLs zu generieren oder für Multi-Tenant-Routing.
X-Forwarded-Proto https Das ursprüngliche vom Client verwendete Protokoll. Bei öffentlichen Endpunkten auf 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.