Mapping di domini personalizzati

Puoi configurare un dominio personalizzato anziché l'indirizzo predefinito fornito da Cloud Run per un servizio di cui è stato eseguito il deployment.

Esistono un paio di modi per configurare un dominio personalizzato per un servizio Cloud Run:

Puoi mappare più domini personalizzati allo stesso servizio Cloud Run.

Prima di iniziare

Acquistare un nuovo dominio, a meno che tu non ne abbia già uno che vuoi utilizzare. Puoi utilizzare qualsiasi registrar di nomi di dominio.

Mappa un dominio personalizzato utilizzando un bilanciatore del carico delle applicazioni esterno globale

Questa opzione ti consente di aggiungere un bilanciatore del carico delle applicazioni esterno globale davanti al servizio Cloud Run e di configurare un dominio personalizzato a livello del bilanciatore del carico.

Un vantaggio dell'utilizzo di un bilanciatore del carico delle applicazioni esterno globale è che ti offre un ampio controllo sulla configurazione del tuo dominio personalizzato. Ad esempio, consente di utilizzare il proprio certificato TLS o di instradare percorsi URL specifici al servizio Cloud Run. Consente inoltre di configurare Cloud CDN per la memorizzazione nella cache e Google Cloud Armor per una maggiore sicurezza.

Tieni presente che puoi anche mappare più servizi a un nome host dinamico o a un percorso nel pattern URL del tuo dominio personalizzato per un singolo bilanciatore del carico, ad esempio <service>.example.com, utilizzando le maschere URL.

Utilizzo delle integrazioni di Cloud Run

Se al momento non utilizzi un bilanciatore del carico delle applicazioni esterno globale, puoi utilizzare la funzionalità di integrazione di Cloud Run per configurare rapidamente un bilanciatore del carico per il tuo servizio Cloud Run. Consulta la pagina delle integrazioni per i domini personalizzati su Cloud Run che utilizzano un bilanciatore del carico delle applicazioni esterno globale.

Utilizzo diretto del bilanciatore del carico delle applicazioni esterno globale

Se utilizzi già un bilanciatore del carico delle applicazioni esterno globale, consulta la documentazione sulla configurazione di un bilanciatore del carico delle applicazioni esterno globale con Cloud Run. Tieni presente che l'utilizzo della funzionalità di integrazione può sovrascrivere alcune configurazioni esistenti del bilanciatore del carico, come l'abilitazione di CDN.

Mappare un dominio personalizzato con Firebase Hosting

Con questa opzione, puoi configurare Firebase Hosting davanti al tuo servizio Cloud Run e connettere un dominio configurato a Firebase Hosting.

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

Utilizzo dell'integrazione di Cloud Run

Il modo più semplice e consigliato per utilizzare Firebase Hosting per mappare un dominio personalizzato è utilizzare la funzionalità di integrazione di Cloud Run per Firebase Hosting.

Uso: firebase.json

Se non vuoi utilizzare la funzionalità di integrazione di Firebase Hosting, puoi in alternativa, puoi utilizzare un approccio manuale per configurare Firebase Hosting.

Per mappare manualmente un dominio personalizzato utilizzando Firebase Hosting:

  1. Aggiungi Firebase al progetto Google Cloud
  2. Installa l'interfaccia a riga di comando di Firebase
  3. In una cartella diversa dal codice sorgente del tuo servizio, crea un file firebase.json con il seguente contenuto:

      {
        "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. Collegare un dominio personalizzato a Firebase Hosting

Scopri di più su Firebase Hosting e Cloud Run.

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

Limitazioni del mapping dei domini Cloud Run

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

  • Le mappature di dominio di 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.
  • Un certificato gestito da Google per le connessioni HTTPS viene emesso e rinnovato automaticamente quando associ un servizio a un dominio personalizzato.
  • Il provisioning del certificato SSL richiede in genere circa 15 minuti, ma in alcuni casi potrebbero essere necessarie fino a 24 ore.
  • Non puoi disattivare TLS 1.0 e 1.1. In questo caso, puoi utilizzare Firebase Hosting o Cloud Load Balancing per abilitare il traffico solo TLS 1.2.
  • Non puoi caricare e utilizzare i tuoi certificati (autogestiti).
  • I mapping di domini di 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 domini personalizzati in altre regioni, devi utilizzare una delle altre opzioni di mappatura.
  • Quando utilizzi le mappature di domini Cloud Run, devi mappare un dominio personalizzato al tuo servizio, quindi aggiornare i record DNS.
  • Puoi mappare un dominio, ad esempio example.com o un sottodominio, come subdomain.example.com.
  • Puoi mappare un dominio solo a /, non a un percorso URL specifico come /users.
  • Non è possibile 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 Mappature dei domini nella console Google Cloud:
    Pagina Mappature dei domini

  2. Fai clic su Aggiungi mappatura.

    Tieni presente che se la finestra di visualizzazione è troppo piccola, il pulsante Aggiungi mappatura non viene visualizzato e devi fare clic sull'icona a forma di ellisse verticale con tre puntini nell'angolo a destra della pagina.

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

  4. A seconda della regione impostata per il servizio selezionato, il modulo mostra le opzioni disponibili per l'aggiunta di un dominio personalizzato:

    • Firebase Hosting con integrazioni di Cloud Run
    • Domini personalizzati - Google Cloud Load Balancing con integrazioni di Cloud Run
    • Mapping di domini Cloud Run

    Seleziona Mapping di domini Cloud Run.

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

  6. Nel campo Base di verifica del dominio, 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.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 registrar del dominio utilizzando i record DNS visualizzati nell'ultimo passaggio. Puoi visualizzare i record in qualsiasi momento facendo clic su DNS Record (Record DNS) nel menu azione "..." per una mappatura di dominio.

  10. Fai clic su Fine.

Riga di comando

  1. Devi verificare la proprietà del dominio la prima volta che utilizzi quel dominio nel progetto Google Cloud, a meno che tu non abbia acquistato il dominio personalizzato da Google. Puoi determinare se il dominio personalizzato che vuoi usare è stato verificato utilizzando il comando

    gcloud domains list-user-verified

    Se è necessario 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 mappare subdomain.example.com, devi verificare la proprietà di example.com.

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

  2. Mappa il servizio sul dominio personalizzato:

    gcloud beta run domain-mappings create --service SERVICE --domain DOMAIN
    • Sostituisci SERVICE con il nome del tuo 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     = "cloud-run-srv"
  location = "us-central1"
  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
  }
}

Sostituisci il valore per 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

Aggiungi i record DNS presso il registrar del dominio

Dopo aver mappato il servizio a un dominio personalizzato in Cloud Run, devi aggiornare i record DNS presso il registrar di domini. Per praticità, Cloud Run genera e visualizza i record DNS che devi inserire. Affinché la mappatura venga applicata, devi aggiungere questi record che puntano al servizio Cloud Run presso il tuo registrar di dominio.

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

  1. Recupera le informazioni sui record DNS per le mappature di dominio utilizzando:

    Console

    1. Vai alla pagina Mapping di domini Cloud Run:
      Pagina Mappature di dominio

    2. Fai clic sull'icona a forma di ellisse verticale con tre puntini a destra del servizio, quindi fai clic su RECORD DNS per visualizzare tutti i record DNS:

    seleziona record DNS

    Riga di comando

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

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

    Sono necessari tutti i record restituiti sotto l'intestazione resourceRecords.

  2. Accedi al tuo account nel registrar di domini e apri la pagina di configurazione DNS.

  3. Individua la sezione dei record host nella pagina di configurazione del dominio e aggiungi ogni record di risorse ricevuto quando hai mappato il dominio al servizio Cloud Run.

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

    • Seleziona il tipo restituito nel record DNS nel passaggio precedente: A, AAAA o CNAME.
    • Utilizza il nome www per mappare 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, l'applicazione di queste modifiche richiede solo pochi minuti, ma in alcuni casi potrebbero essere necessarie diverse ore, a seconda del registrar e della durata (TTL) di eventuali record DNS precedenti per il dominio. Puoi utilizzare uno strumento dig, ad esempio questa versione online di dig, per verificare che i record DNS siano stati aggiornati correttamente.

  6. Per verificare l'efficacia, accedi al tuo servizio dal nuovo URL, ad esempio https://www.example.com. Tieni presente che 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, quel dominio viene verificato solo in base all'account di quell'utente. Ciò significa che solo questo utente può aggiungere altre mappature di dominio che utilizzano quel dominio. Pertanto, per consentire ad altri utenti di aggiungere mappature che utilizzano quel dominio, devi aggiungerli come proprietari verificati.

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

  1. Vai a questo 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 di servizio.

  3. Scorri verso il basso fino all'elenco Proprietari verificati, fai clic su Aggiungi un proprietario e inserisci l'indirizzo email di un Account Google o l'ID account di servizio.

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

    Vai alla pagina Account di servizio

Elimina un mapping di dominio Cloud Run

Puoi utilizzare la console Google Cloud o lo strumento a riga di comando gcloud per eliminare un mapping di dominio.

Console

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

  2. Nella pagina Mapping di dominio, seleziona il mapping di dominio che vuoi eliminare e fai clic su Elimina.

Riga di comando

  1. Elimina il mapping 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 client che dichiari il destinatario previsto di una richiesta al momento della generazione delle credenziali (il pubblico).

Il pubblico corrisponde in genere all'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 usi un dominio personalizzato, non dovresti utilizzare come segmento di pubblico l'URL run.app generato automaticamente. Devi invece configurare 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 Application Load Balancer esterno globale con Terraform, esplora questo codice campione.