Servizi
I servizi sono container che vengono attivati da un endpoint HTTP. Esempi di servizi includono:
- Siti web
- API
- Webhook
Per questi endpoint, utilizziamo la nostra tecnologia scale-to-zero per spegnere le risorse inutilizzate e inizializzarle solo quando arriva una richiesta.
Come funziona
Quando crei un servizio, creiamo un endpoint pubblico e rilasciamo un certificato TLS valido per esso. Per impostazione predefinita, questo endpoint ospita un server HTTP vuoto che puoi utilizzare per testare la tua configurazione.
Quando ci fornisci un’immagine del container, sostituiamo il nostro segnaposto statico con il tuo sito web o la tua API.
Requisiti dell’immagine del container
Ogni immagine del container viene inizializzata su richiesta, quindi qualsiasi sistema distribuito su DownToZero (DTZ) deve essere progettato tenendo questo aspetto presente.
Per impostazione predefinita, DTZ attende che il container apra una qualsiasi porta. La prima porta che viene aperta sarà quella a cui DTZ si collega e alla quale inoltra la richiesta.
Variabili d’ambiente
Il runtime fornisce le seguenti variabili d’ambiente al tuo servizio:
| variabile | modificabile | descrizione |
|---|---|---|
| PORT | sì | La porta su cui la tua applicazione dovrebbe ascoltare. |
| DTZ_ACCESS_TOKEN | sì (l’identità può essere cambiata) | Un JWT generato dal contesto che consente l’accesso alle risorse all’interno del contesto. |
| DTZ_CONTEXT_ID | no | Il contesto DTZ in cui l’applicazione corrente è in esecuzione. |
Intestazioni delle richieste HTTP
Il runtime inietta le seguenti intestazioni HTTP in ogni richiesta inoltrata al tuo servizio:
| intestazione | valore di esempio | descrizione |
|---|---|---|
| X-Request-ID | 5f2a9b4e-2e9e-4e6c-a2a3-9f2a1c3d4e5f | Identificatore univoco per la richiesta. Utile per correlare i log e il tracciamento tra i componenti. |
| X-Forwarded-Host | api.example.com | Il valore originale di Host richiesto dal client. Usalo quando generi URL assoluti o per il routing multi-tenant. |
| X-Forwarded-Proto | https | Il protocollo originale utilizzato dal client. Per gli endpoint pubblici su DTZ questo è sempre https. |
Queste intestazioni sono fornite dalla piattaforma e riflettono il contesto della richiesta lato client; la tua applicazione dovrebbe considerarle come input di sola lettura.