Mapping di domini personalizzati

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:

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 da 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 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 offre un controllo molto elevato sulla configurazione del dominio personalizzato. Ad esempio, ti consente di utilizzare il tuo certificato TLS o di indirizzare percorsi URL specifici al servizio Cloud Run. Inoltre, ti consente 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 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 Firebase Hosting

Con questa opzione, configuri Firebase Hosting davanti al tuo servizio Cloud Run e colleghi un dominio a Firebase Hosting.

Firebase Hosting ha un prezzo ridotto e, facoltativamente, ti consente di ospitare e pubblicare contenuti statici insieme ai contenuti dinamici pubblicati dal tuo servizio Cloud Run.

Per mappare un dominio personalizzato utilizzando Firebase Hosting:

  1. Aggiungi Firebase al tuo progetto Google Cloud.
  2. Installa l'interfaccia a riga di comando di Firebase.
  3. In una cartella diversa dal codice sorgente del servizio, crea un firebase.json file con 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.

  4. Esegui il deployment della configurazione di Firebase Hosting:

    firebase deploy --only hosting --project PROJECT_ID
  5. Collega un dominio personalizzato a Firebase Hosting.

Scopri di più su Firebase Hosting e Cloud Run.

Mappare un dominio personalizzato utilizzando la mappatura dei domini di Cloud Run (disponibilità limitata e anteprima)

Limitazioni della mappatura dei domini Cloud Run

Le seguenti considerazioni si applicano ai mapping di domini Cloud Run:

  • I mapping di domini Cloud Run sono nella 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.
  • Un certificato gestito da Google per le connessioni HTTPS viene emesso e rinnovato automaticamente quando mappi un servizio a un dominio personalizzato.
  • Il provisioning del certificato SSL richiede in genere circa 15 minuti, ma può richiedere fino a 24 ore.
  • Non puoi disattivare TLS 1.0 e 1.1. Se si tratta di 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 (con gestione indipendente).
  • I mapping di domini Cloud Run sono limitati a 64 caratteri.
  • La mappatura dei domini è disponibile nelle seguenti regioni:
    • asia-east1
    • asia-northeast1
    • asia-southeast1
    • europe-north1
    • europe-west1
    • europe-west4
    • us-central1
    • us-east1
    • us-east4
    • us-west1
  • Per mappare i domini personalizzati in altre regioni, devi utilizzare una delle altre opzioni di mappatura.
  • Quando utilizzi i mapping di domini di Cloud Run, mappi un dominio personalizzato al servizio, quindi aggiorni i record DNS.
  • Puoi mappare un dominio, ad esempio example.com, o un sottodominio, ad esempio subdomain.example.com.
  • Puoi mappare un dominio solo a /, non a un percorso dell'URL specifico come /users.
  • Non puoi utilizzare certificati con caratteri jolly con questa funzionalità.

Mappare un dominio personalizzato a un servizio

Puoi utilizzare la console Google Cloud, gcloud CLI o Terraform per mappare un dominio personalizzato a un servizio.

Console

  1. Apri la pagina delle mappature dei domini nella console Google Cloud:
    Pagina Mappature dei domini

  2. Fai clic su Aggiungi mappatura.

    Se la finestra del display è troppo piccola, il pulsante Aggiungi mappatura non viene visualizzato e devi fare clic sull'icona ellisse verticale con tre puntini nell'angolo della pagina.

  3. Nell'elenco a discesa, seleziona il servizio a cui stai mappando il dominio personalizzato.

  4. Seleziona Mapping di domini Cloud Run.

  5. Nel modulo Aggiungi mappatura, seleziona Verifica un nuovo dominio.

  6. Nel campo Dominio di base da verificare, devi verificare la proprietà di un dominio prima di poterlo utilizzare, a meno che non lo abbia acquistato da Google.

    Se vuoi mappare subdomain.example.com o subdomain1.subdomain2.example.com, devi verificare la proprietà di example.com. Per ulteriori informazioni sulla verifica della proprietà del dominio, consulta la guida di Search Console.

  7. Fai clic su Continua.

  8. Al termine della verifica del dominio, fai clic su Continua la verifica e chiudi.

  9. Aggiorna i record DNS sul sito web del tuo 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 di azioni "…" per una mappatura del dominio.

  10. Fai clic su Fine.

gcloud

  1. Devi verificare la proprietà del dominio la prima volta che lo utilizzi nel progetto Google Cloud, a meno che non lo abbia acquistato da Google. Puoi determinare se il dominio personalizzato che vuoi utilizzare è stato verificato eseguendo il seguente comando:

    gcloud domains list-user-verified

    Se è necessario verificare la tua proprietà del dominio, apri la pagina di verifica di Search Console:

    gcloud domains verify BASE-DOMAIN

    dove BASE-DOMAIN è il dominio base da verificare. Ad esempio, se vuoi mappare subdomain.example.com, devi verificare la proprietà di example.com.

    In Search Console, completa la verifica della proprietà del dominio. Per maggiori informazioni, consulta la guida di Search Console.

  2. Mappa il servizio al dominio personalizzato:

    gcloud beta run domain-mappings create --service SERVICE --domain DOMAIN
    • Sostituisci SERVICE con il nome del servizio.
    • Sostituisci DOMAIN con il tuo dominio personalizzato, ad esempio example.com o subdomain.example.com

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:

resource "google_cloud_run_v2_service" "default" {
  name     = "custom-domain"
  location = "us-central1"

  deletion_protection = false # set to true to prevent destruction of the resource

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
  }
}

Sostituisci il valore di name con il nome del tuo servizio.

Mappa il servizio Cloud Run al dominio personalizzato:

data "google_project" "project" {}

resource "google_cloud_run_domain_mapping" "default" {
  name     = "verified-domain.com"
  location = google_cloud_run_v2_service.default.location
  metadata {
    namespace = data.google_project.project.project_id
  }
  spec {
    route_name = google_cloud_run_v2_service.default.name
  }
}

Sostituisci verified-domain.com con il tuo dominio verificato personalizzato, ad esempio example.com o subdomain.example.com.

Aggiungere i record DNS al registrar di dominio

Dopo aver mappato il servizio a un dominio personalizzato in Cloud Run, devi aggiornare i record DNS nel registrar del dominio. Per comodità, Cloud Run genera e mostra i record DNS che devi inserire. Per attivare la mappatura, devi aggiungere questi record che rimandano al servizio Cloud Run presso il registrar del tuo dominio.

Se utilizzi Cloud DNS come provider DNS, consulta Aggiunta di un record.

  1. Recupera le informazioni del record DNS per le mappature dei domini utilizzando quanto segue:

    Console

    1. Vai alla pagina dei mapping di domini Cloud Run:
      Pagina Mapping di domini

    2. Fai clic sull'icona ellisse verticale con tre puntini a destra del servizio, poi fai clic su DNS RECORDS (RECORD DNS) per visualizzare tutti i record DNS:

    Seleziona i record DNS

    gcloud

    gcloud beta run domain-mappings describe --domain [DOMAIN]

    Sostituisci [DOMAIN] con il tuo dominio personalizzato, ad esempio example.com o subdomain.example.com.

    Devi avere tutti i record restituiti sotto la voce resourceRecords.

  2. Accedi al tuo account presso il registrar del dominio e apri la pagina di configurazione DNS.

  3. Individua la sezione dei record host della pagina di configurazione del tuo dominio, quindi aggiungi ciascuno dei record di risorse che hai ricevuto quando hai mappato il tuo dominio al servizio Cloud Run.

  4. Quando aggiungi ciascuno dei record DNS precedenti all'account presso il provider DNS:

    • Seleziona il tipo restituito nel record DNS nel passaggio precedente: A, AAAA o CNAME.
    • Utilizza il nome www per mappare a www.example.com.
    • Utilizza il nome @ per mappare example.com.
  5. Salva le modifiche nella pagina di configurazione DNS dell'account del tuo dominio. Nella maggior parte dei casi, queste modifiche vengono applicate in pochi minuti, ma in alcuni casi possono essere necessarie fino a diverse ore, a seconda del registrar e del valore TTL (Time To Live) di eventuali record DNS precedenti per il tuo dominio. Puoi utilizzare uno strumento dig, ad esempio la versione online di dig, per confermare che i record DNS siano stati aggiornati correttamente.

  6. Verifica che l'operazione sia andata a buon fine visitando il tuo servizio al nuovo URL, ad esempio https://www.example.com. L'emissione del certificato SSL gestito può richiedere diversi minuti.

Aggiungere proprietari di dominio verificati ad altri utenti o account di servizio

Quando un utente verifica un dominio, questo viene verificato solo per l'account dell'utente. Ciò significa che solo quell'utente può aggiungere altri mappaggi del dominio che utilizzano quel dominio. Pertanto, per consentire ad altri utenti di aggiungere mappature che utilizzano questo dominio, devi aggiungerli come proprietari verificati.

Se devi aggiungere proprietari verificati del tuo dominio ad altri utenti o account di servizio, puoi aggiungere l'autorizzazione tramite la pagina Search Console:

  1. Vai al seguente indirizzo nel browser web:

    https://search.google.com/search-console/welcome

  2. In Proprietà, fai clic sul dominio a cui vuoi aggiungere un account utente o servizio.

  3. Vai all'elenco Proprietari verificati, fai clic su Aggiungi un proprietario e poi inserisci un indirizzo email dell'Account Google o l'ID account di servizio.

    Per visualizzare un elenco dei tuoi account di servizio, apri la pagina Account di servizio nella console Google Cloud:

    Vai alla pagina Account di servizio

Eliminare una mappatura di dominio Cloud Run

Puoi utilizzare la console Google Cloud o gcloud CLI per eliminare una mappatura del dominio.

Console

  1. Apri la pagina Mappature dei domini nella console Google Cloud:
    Pagina Mappature dei domini

  2. Nella pagina Mappature dei domini, seleziona la mappatura del dominio da eliminare e fai clic su Elimina.

gcloud

  1. Elimina la mappatura di dominio:

    gcloud beta run domain-mappings delete --domain DOMAIN
    • Sostituisci DOMAIN con il tuo dominio personalizzato, ad esempio example.com o subdomain.example.com.

Utilizzo di 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 segmento di 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. Tuttavia, se utilizzi un dominio personalizzato, devi evitare di utilizzare l'URL run.app generato automaticamente come pubblico. Configura il servizio per un segmento di pubblico personalizzato in modo che accetti il tuo dominio personalizzato come segmento di pubblico di autenticazione valido.

Passaggi successivi

  • Per configurare un dominio personalizzato per Cloud Run utilizzando un bilanciatore del carico delle applicazioni esterno globale con Terraform, consulta il codice di esempio.