Puoi inviare richieste HTTPS da qualsiasi dispositivo in grado di effettuare richieste HTTPS per attivare un servizio ospitato su Cloud Run. Tieni presente che tutti i servizi Cloud Run hanno un URL HTTPS stabile.
Alcuni dei casi d'uso includono:
- API web RESTful personalizzata
- Microservizio privato
- middleware HTTP o proxy inverso per le tue applicazioni web
- Applicazione web predefinita
Crea servizi pubblici
Per creare un servizio pubblico su Cloud Run è necessario:
- Accesso al servizio dalla rete internet pubblica
- Un URL destinato all'uso pubblico
Per rendere pubblico un servizio, imposta il servizio in modo da consentire l'accesso non autenticato (pubblico) durante il deploy o in qualsiasi momento dopo il deployment.
Puoi utilizzare l'URL stabile e assegnato automaticamente fornito al momento del primo deployment del servizio come URL pubblico su Cloud Run. Per determinare l'URL di un servizio di cui è stato eseguito il deployment:
gcloud run services describe SERVICE --format 'value(status.url)'
L'URL per un servizio Cloud Run ha il formato https://[
TAG---]
SERVICE_IDENTIFIER.run.app
, dove TAG si riferisce al tag di traffico per la revisione che stai richiedendo, mentre SERVICE_IDENTIFIER è un identificatore univoco e stabile per un servizio Cloud Run. Non analizzare SERVICE_IDENTIFIER perché non ha un formato fisso e la logica per la generazione di SERVICE_IDENTIFIER è soggetta a modifiche.
Cloud Run reindirizza tutte le richieste HTTP a HTTPS, ma termina TLS prima che raggiungano il tuo servizio web. Se il servizio genera una risorsa web che fa riferimento ad altre risorse web con URL non protetti (http://
), la pagina potrebbe essere soggetta ad errori o avvisi relativi a contenuti misti.
Utilizza il protocollo https
per tutti gli URI web di riferimento o l'account
per le istruzioni proxy nella richiesta HTTP, come l'intestazione HTTP X-Forwarded-Proto
.
Puoi anche utilizzare il tuo dominio personalizzato.
HTTP e HTTP/2
Per impostazione predefinita, Cloud Run esegue il downgrade delle richieste HTTP/2 a HTTP/1 quando queste vengono inviate al container. Se vuoi impostare esplicitamente il servizio in modo che utilizzi HTTP/2 end-to-end, consulta la pagina Utilizzare HTTP/2.
Crea servizi privati
Per creare un servizio privato su Cloud Run è necessario limitare l'accesso al servizio sfruttando l'autorizzazione del callback IAM.
Puoi anche limitare l'accesso a un servizio utilizzando un meccanismo di autorizzazione e autenticazione a livello di applicazione, ad esempio utilizzando Identity Platform.
Testare i servizi privati
Il modo più semplice per testare i servizi privati è utilizzare il proxy Cloud Run in Google Cloud CLI.
Questo esegue il proxy del servizio privato a http://localhost:8080
(o alla porta specificata con --port
),
fornendo il token dell'account attivo o un altro token da te specificato.
In questo modo puoi usare un browser web o uno strumento come curl
.
Questo è il metodo consigliato per testare in privato un sito web o un'API nel tuo browser.
Puoi eseguire il proxy di un servizio localmente utilizzando la seguente riga di comando in un ambiente Linux, macOS, WSL (opzione preferita) o cygwin:
gcloud run services proxy SERVICE --project PROJECT-ID
Puoi anche testare i servizi privati senza il proxy utilizzando uno strumento
come curl
, passando un token di autenticazione nell'intestazione Authorization
:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL
Private Service to Service
Un servizio Cloud Run può chiamare un altro servizio Cloud Run con autenticazione da servizio a servizio.
Codice campione che richiama un servizio privato
Per esempi di codice che mostrano come ottenere un token ID ed effettuare una richiesta HTTP a un servizio privato, consulta l'argomento Autenticazione service-to-service.
Uso di un middleware per migliorare il servizio.
I proxy HTTPS possono ridurre il carico di funzionalità comuni di un servizio HTTP, come la memorizzazione nella cache, la convalida delle richieste o l'autorizzazione. Per i microservizi, molti proxy HTTP fanno parte di una soluzione Gateway API o di un mesh di servizi come Istio.
I prodotti Google Cloud che puoi utilizzare per migliorare il tuo servizio Cloud Run includono:
Gateway API, che puoi utilizzare per creare, proteggere e monitorare le API da utilizzare come proxy per altri servizi Cloud Run.
Firebase Hosting, che puoi utilizzare per creare il frontend di un'applicazione web da utilizzare con Cloud Run come backend dinamico.