Puoi configurare un dominio personalizzato anziché l'indirizzo predefinito fornito da Cloud Run per un servizio di cui hai eseguito il deployment.
Esistono diversi modi per configurare un dominio personalizzato per un servizio Cloud Run:
- Utilizza un bilanciatore del carico delle applicazioni esterno globale (consigliato)
- Utilizza il mapping di domini Cloud Run (disponibilità limitata e anteprima)
- Utilizza Firebase Hosting
Puoi mappare più domini personalizzati allo stesso servizio Cloud Run.
Prima di iniziare
Acquista un nuovo dominio, a meno che tu non ne abbia già uno che vuoi utilizzare. Puoi utilizzare qualsiasi registrar di nomi di dominio.
Mappare un dominio personalizzato utilizzando un bilanciatore del carico delle applicazioni esterno globale
Con questa opzione, aggiungi un bilanciatore del carico delle applicazioni esterno globale davanti al tuo servizio Cloud Run e configuri un dominio personalizzato a livello di bilanciatore del carico.
Un vantaggio dell'utilizzo di un bilanciatore del carico delle applicazioni esterno globale è che ti offre un notevole controllo sulla configurazione del dominio personalizzato. Ad esempio, ti consente di utilizzare il tuo certificato TLS o di instradare percorsi URL specifici al servizio Cloud Run. Ti consente anche di configurare Cloud CDN per la memorizzazione nella cache e Google Cloud Armor per una maggiore sicurezza.
Puoi anche mappare più servizi a un nome host o a un percorso dinamico nel pattern URL del dominio personalizzato per un singolo bilanciatore del carico, ad esempio <service>.example.com,
utilizzando le maschere URL.
Consulta la documentazione sulla configurazione di un bilanciatore del carico delle applicazioni esterno globale con Cloud Run.
Mappare un dominio personalizzato utilizzando il mapping di domini Cloud Run (disponibilità limitata e anteprima)
Limitazioni del mapping di domini Cloud Run
Le seguenti considerazioni si applicano ai mapping di domini Cloud Run:
- I mapping di domini Cloud Run sono in fase di lancio in anteprima. A causa di problemi di latenza, non sono pronti per la produzione e non sono supportati nella disponibilità generale. Al momento, questa opzione non è consigliata per i servizi di produzione.
- Quando mappi un servizio a un dominio personalizzato, viene emesso e rinnovato automaticamente un certificato gestito da Google per le connessioni HTTPS.
- In genere, il provisioning del certificato SSL richiede circa 15 minuti, ma può richiedere fino a 24 ore.
- Non puoi disattivare TLS 1.0 e 1.1. Se questo è un problema, puoi utilizzare Firebase Hosting o Cloud Load Balancing per attivare il traffico solo TLS 1.2.
- Non puoi caricare e utilizzare i tuoi certificati (autogestiti).
- I mapping di domini Cloud Run sono limitati a 64 caratteri.
- Il mapping di domini è disponibile nelle seguenti regioni:
asia-east1asia-northeast1asia-southeast1europe-north1europe-west1europe-west4us-central1us-east1us-east4us-west1
- Per mappare domini personalizzati in altre regioni, devi utilizzare una delle altre opzioni di mapping.
- Quando utilizzi i mapping di domini Cloud Run, mappi un dominio personalizzato al tuo servizio, quindi aggiorni i record DNS.
- Puoi mappare un dominio, ad esempio
example.com, o un sottodominio, ad esempiosubdomain.example.com. - Puoi mappare un dominio solo a
/, non a un percorso dell'URL specifico come/users. - Non puoi utilizzare i certificati con caratteri jolly con questa funzionalità.
Mappare un dominio personalizzato a un servizio
Puoi utilizzare la Google Cloud console, gcloud CLI o Terraform per mappare un dominio personalizzato a un servizio.
Console
Apri la pagina dei mapping di domini nella Google Cloud console:
Pagina dei mapping di dominiFai clic su Aggiungi mappatura.
Se la finestra di visualizzazione è troppo piccola, il pulsante Aggiungi mappatura non viene visualizzato e devi fare clic sull'icona con tre puntini verticali nell'angolo della pagina.
Dall'elenco a discesa, seleziona il servizio a cui stai mappando il dominio personalizzato.
Seleziona Mapping di domini Cloud Run.
Nel modulo Aggiungi mappatura, seleziona Verifica un nuovo dominio.
Nel campo Dominio di base da verificare, devi verificare la proprietà di un dominio prima di poterlo utilizzare, a meno che tu non abbia acquistato il dominio da Google.
Se vuoi mappare
subdomain.example.comosubdomain1.subdomain2.example.com, devi verificare la proprietà diexample.com. Per ulteriori informazioni sulla verifica della proprietà del dominio, consulta la guida di Search Console.Fai clic su Continua.
Al termine della verifica del dominio, fai clic su Continua la verifica e chiudi.
Aggiorna i record DNS nel sito web del registrar di domini utilizzando i record DNS visualizzati nell'ultimo passaggio. Puoi visualizzare i record in qualsiasi momento facendo clic su Record DNS nel menu Azioni "..." per una mappatura di domini.
Fai clic su Fine.
gcloud
Devi verificare la proprietà del dominio la prima volta che lo utilizzi nel Google Cloud progetto, a meno che tu non abbia acquistato il dominio personalizzato da Google. Puoi determinare se il dominio personalizzato che vuoi utilizzare è stato verificato eseguendo il seguente comando:
gcloud domains list-user-verified
Se devi verificare la proprietà del dominio, apri la pagina di verifica di Search Console:
gcloud domains verify BASE-DOMAIN
dove
BASE-DOMAINè il dominio di base che vuoi verificare. Ad esempio, se vuoi mapparesubdomain.example.com, devi verificare la proprietà diexample.com.In Search Console, completa la verifica della proprietà del dominio. Per ulteriori informazioni, consulta la guida di Search Console.
Mappa il servizio al dominio personalizzato:
gcloud beta run domain-mappings create --service SERVICE --domain DOMAIN
- Sostituisci
SERVICEcon il nome del servizio. - Sostituisci
DOMAINcon il tuo dominio personalizzato, ad esempioexample.comosubdomain.example.com.
- Sostituisci
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Per creare un servizio Cloud Run, aggiungi quanto segue al file main.tf esistente:
Sostituisci:
custom-domaincon il nome del servizio Cloud Run.us-docker.pkg.dev/cloudrun/container/hellocon un riferimento all'immagine container. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha il formatoLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
Mappa il servizio Cloud Run al dominio personalizzato:
Sostituisci verified-domain.com con il tuo dominio personalizzato verificato, ad esempio example.com o subdomain.example.com.
Aggiungere i record DNS nel registrar di domini
Dopo aver mappato il servizio a un dominio personalizzato in Cloud Run, devi aggiornare i record DNS nel registrar di domini. Per comodità, Cloud Run genera e visualizza i record DNS che devi inserire. Devi aggiungere questi record che puntano al servizio Cloud Run nel registrar di domini affinché il mapping diventi effettivo.
Se utilizzi Cloud DNS come provider DNS, consulta Aggiungere un record.
Recupera le informazioni sui record DNS per i mapping di domini utilizzando quanto segue:
Console
Vai alla pagina dei mapping di domini Cloud Run:
Pagina dei mapping di dominiFai clic sull'icona con tre puntini verticali a destra del servizio, quindi fai clic su RECORD DNS per visualizzare tutti i record DNS:
gcloud
gcloud beta run domain-mappings describe --domain [DOMAIN]
Sostituisci
[DOMAIN]con il tuo dominio personalizzato, ad esempioexample.comosubdomain.example.com.Ti servono tutti i record restituiti sotto l'intestazione
resourceRecords.Accedi al tuo account nel registrar di domini e poi apri la pagina di configurazione DNS.
Individua la sezione dei record host della pagina di configurazione del tuo dominio e poi aggiungi ciascuno dei record di risorse che hai ricevuto quando hai mappato il dominio al tuo servizio Cloud Run.
Quando aggiungi ciascuno dei record DNS precedenti all'account del provider DNS:
- Seleziona il tipo restituito nel record DNS nel passaggio precedente:
AoAAAA, oCNAME. - Utilizza il nome
wwwper mappare awww.example.com. - Utilizza il nome
@per mappareexample.com.
- Seleziona il tipo restituito nel record DNS nel passaggio precedente:
Salva le modifiche nella pagina di configurazione DNS dell'account del tuo dominio. Nella maggior parte dei casi, l'applicazione di queste modifiche richiede solo pochi minuti, ma in alcuni casi può richiedere fino a diverse ore, a seconda del registrar e del Time-To-Live (TTL) di eventuali record DNS precedenti per il tuo dominio. Puoi utilizzare uno
digstrumento, ad esempio la versionedigonline, per verificare che i record DNS siano stati aggiornati correttamente.Verifica la riuscita dell'operazione accedendo al servizio al nuovo URL, ad esempio
https://www.example.com. L'emissione del certificato SSL gestito può richiedere alcuni minuti.
Aggiungere proprietari di domini verificati ad altri utenti o service account
Quando un utente verifica un dominio, questo viene verificato solo per l'account dell'utente. Ciò significa che solo l'utente può aggiungere altri mapping di domini che utilizzano quel dominio. Pertanto, per consentire ad altri utenti di aggiungere mapping che utilizzano quel dominio, devi aggiungerli come proprietari verificati.
Se devi aggiungere proprietari verificati del tuo dominio ad altri utenti o service account, puoi aggiungere l'autorizzazione tramite la pagina Search Console:
Vai al seguente indirizzo nel browser web:
In Proprietà, fai clic sul dominio a cui vuoi aggiungere un utente o un service account.
Vai all'elenco Proprietari verificati , fai clic su Aggiungi un proprietario e poi inserisci un indirizzo email dell'Account Google o un ID del account di servizio.
Per visualizzare un elenco dei tuoi service account, apri la pagina Service account nella Google Cloud console:
Eliminare un mapping di domini Cloud Run
Puoi utilizzare la Google Cloud console o gcloud CLI per eliminare un mapping di domini.
Console
Apri la pagina dei mapping di domini nella Google Cloud console:
Pagina dei mapping di dominiNella pagina Mapping di domini, seleziona il mapping di domini che vuoi eliminare e fai clic su Elimina.
gcloud
Elimina il mapping di domini:
gcloud beta run domain-mappings delete --domain DOMAIN
- Sostituisci
DOMAINcon il tuo dominio personalizzato, ad esempioexample.comosubdomain.example.com.
- Sostituisci
Mappare un dominio personalizzato utilizzando Firebase Hosting
Con questa opzione, configuri Firebase Hosting davanti al tuo servizio Cloud Run e colleghi un dominio a Firebase Hosting.
L'utilizzo di Firebase Hosting ha un prezzo basso e, facoltativamente, ti consente di ospitare e gestire contenuti statici insieme ai contenuti dinamici gestiti dal tuo servizio Cloud Run.
Per mappare un dominio personalizzato utilizzando Firebase Hosting:
- Aggiungi Firebase al tuo Google Cloud progetto.
- Installa l'interfaccia a riga di comando di Firebase.
In una cartella diversa dal codice sorgente del tuo servizio, crea un file
firebase.jsoncon i seguenti contenuti:{ "hosting": { "rewrites": [{ "source": "**", "run": { "serviceId": "SERVICE_NAME", "region": "REGION" } }] } }Sostituisci SERVICE_NAME e REGION con il nome e la regione del tuo servizio Cloud Run.
Esegui il deployment della configurazione di Firebase Hosting:
firebase deploy --only hosting --project PROJECT_ID
Scopri di più su Firebase Hosting e Cloud Run.
Utilizzare domini personalizzati con servizi autenticati
I servizi autenticati sono protetti da IAM. Questi servizi Cloud Run richiedono l'autenticazione del client che dichiara il destinatario previsto di una richiesta al momento della generazione delle credenziali (il pubblico).
Il pubblico è in genere l'URL completo del servizio di destinazione, che per impostazione predefinita per
i servizi Cloud Run è un URL generato che termina con
run.app.
Se utilizzi un dominio personalizzato, puoi configurare un segmento di pubblico personalizzato in modo che il tuo servizio accetti il dominio personalizzato come pubblico valido.
Passaggi successivi
- Scopri come proteggere i tuoi servizi Cloud Run.
- Per configurare un dominio personalizzato per Cloud Run utilizzando un bilanciatore del carico delle applicazioni esterno globale, consulta Configurare un bilanciatore del carico delle applicazioni esterno globale con Cloud Run.