Dopo aver creato un servizio o una funzione, Cloud Run fornisce un endpoint HTTPS per il servizio. Puoi abilitare l'esecuzione del servizio in risposta a Richieste HTTPS.
Tutti i servizi Cloud Run hanno un URL HTTPS stabile, che rappresenta endpoint HTTPS predefinito per il servizio, anche se puoi configurare domini personalizzati .
Ecco alcuni casi d'uso:
- API web RESTful personalizzata
- Microservizio privato
- Middleware HTTP o proxy inverso per le tue applicazioni web
- Applicazione web preconfezionata
Creare servizi pubblici
Per creare un servizio pubblico su Cloud Run è necessario quanto segue:
- Accesso al servizio dalla rete internet pubblica
- Un URL destinato all'uso pubblico
Per rendere pubblico un servizio, impostalo in modo da consentire i servizi non autenticati (pubblici) quando esegui il deployment o in qualsiasi momento dopo il deployment.
URL del servizio
Cloud Run assegna un modello di crittografia URL non deterministico a tutti i servizi. Se il nome del servizio di lunghezza, Cloud Run assegna anche URL deterministico al servizio.
Puoi disattivare questi URL run.app
predefiniti.
Puoi recuperare l'URL del tuo servizio facendo clic sul nome del servizio nella Console Google Cloud o eseguendo il comando seguente in gcloud CLI:
gcloud run services describe SERVICE --format 'value(status.url)'
L'URL deterministico ha la priorità quando viene visualizzato.
URL deterministico
L'URL deterministico consente di prevedere l'URL del servizio prima che sia che può essere utile per le comunicazioni tra servizi.
L'URL deterministico è disponibile solo per segmenti DNS di massimo 63 caratteri. Il DNS che contenga il nome del servizio, il numero del progetto e qualsiasi tag di traffico i tag.
L'URL deterministico per un servizio Cloud Run ha il seguente formato:
https://[TAG---]SERVICE_NAME-PROJECT_NUMBER.REGION.run.app
dove:
- TAG è il tag del traffico facoltativo per la revisione richiedenti.
- PROJECT_NUMBER è il numero del progetto Google Cloud.
- SERVICE_NAME è il nome del servizio Cloud Run.
- REGION è il nome della regione, ad esempio
us-central1
.
URL non deterministico
Gli URL non deterministici non hanno un formato deterministico, il che significa che, poiché il secondo campo dell'URL è un hash casuale, non puoi prevedere quale sarà l'URL completo prima di implementare i servizi. Tuttavia, dopo aver eseguito il deployment del servizio, l'URL rimane stabile.
L'URL non deterministico per un servizio Cloud Run ha il formato
https://[
TAG---]
SERVICE_IDENTIFIER.run.app
,
dove TAG si riferisce al tag del traffico facoltativo per la revisione di cui
e SERVICE_IDENTIFIER è un indirizzo stabile e univoco
per un servizio Cloud Run. Non analizzare
SERVICE_IDENTIFIER poiché non ha un formato fisso e
la logica per la generazione di SERVICE_IDENTIFIER è soggetta a modifiche.
Reindirizzamento da HTTP a HTTPS
Cloud Run reindirizza tutte le richieste HTTP a HTTPS, ma termina il protocollo TLS prima che raggiungano il servizio web. Se il tuo servizio genera risorse web che fanno riferimento ad altre risorse web con URL non sicuri (http://
), la tua pagina potrebbe essere soggetta ad avvisi o errori relativi a contenuti misti.
Utilizza il protocollo https
per tutti gli URI web o gli account di riferimento
per le istruzioni proxy nella richiesta HTTP, ad esempio X-Forwarded-Proto
HTTP
intestazione.
HTTP e HTTP/2
Per impostazione predefinita, Cloud Run esegue il downgrade delle richieste HTTP/2 a HTTP/1 quando vengono inviate al contenitore. Se vuoi impostare esplicitamente il tuo servizio per utilizzare HTTP/2 end-to-end, consulta la sezione Utilizzare HTTP/2.
Creare servizi privati
Per creare un servizio privato su Cloud Run è necessario limitare l'accesso al servizio sfruttando l'autorizzazione IAM callback.
Puoi anche limitare l'accesso a un servizio utilizzando il meccanismo di autenticazione e autorizzazione a livello di applicazione, ad esempio utilizzando Identity Platform.
Testare i servizi privati
Il modo più semplice per testare i servizi privati è utilizzare
Proxy Cloud Run in Google Cloud CLI.
In questo modo, il servizio privato viene eseguito in proxy su http://localhost:8080
(o sulla porta specificata con --port
),
fornendo il token dell'account attivo o un altro token specificato.
In questo modo puoi utilizzare un browser web o uno strumento come curl
.
Questo è il modo consigliato per testare in privato un sito web o un'API nel 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
Da servizio privato a servizio privato
Un servizio Cloud Run può chiamare un altro Cloud Run con l'autenticazione da servizio a servizio.
Codice di esempio 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 di servizio a servizio.
Uso di un middleware per migliorare il servizio.
I proxy HTTPS possono ridurre il carico di funzionalità comuni di un servizio HTTP, come per la memorizzazione nella cache, la convalida delle richieste o l'autorizzazione. Per i microservizi, molti proxy HTTP Fanno parte di una soluzione API Gateway o un mesh di servizi come Istio.
I prodotti Google Cloud che puoi utilizzare per migliorare il tuo servizio Cloud Run includono:
API Gateway, che puoi utilizzare per creare, proteggere e monitorare le API da utilizzare come proxy per altri servizi Cloud Run.
Firebase Hosting, che puoi per creare il frontend di un'applicazione web da usare Cloud Run come backend dinamico.
Richiamare una funzione con una richiesta HTTPS
Per impostazione predefinita, tutte le funzioni create in Cloud Run hanno un run.app
URL HTTPS, che può essere utilizzato per attivare una funzione. Le funzioni create con un trigger Eventarc avranno anche un URL HTTPS, a meno che non disattivi questa opzione utilizzando la funzionalità di disattivazione dell'URL run.app
.