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.