Eseguire il richiamo con una richiesta HTTPS

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:

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.