Mapper les domaines personnalisés

Vous pouvez configurer un domaine personnalisé plutôt que l'adresse par défaut fournie par Cloud Run pour un service déployé.

Il existe plusieurs façons de configurer un domaine personnalisé pour un service Cloud Run :

Vous pouvez mapper plusieurs domaines personnalisés avec un même service Cloud Run.

Avant de commencer

Achetez un nouveau domaine, sauf si vous en avez déjà un que vous souhaitez utiliser. Vous pouvez utiliser n'importe quel service d'enregistrement de noms de domaine.

Si vous souhaitez enregistrer un domaine avec Cloud Domains, consultez la section Enregistrer un domaine avec Cloud Domains dans la console Cloud Run.

Mapper un domaine personnalisé à l'aide d'un équilibreur de charge HTTP(S) externe global

Avec cette option, vous ajoutez un équilibreur de charge HTTP(S) externe global devant votre service Cloud Run et configurez un domaine personnalisé au niveau de l'équilibreur de charge.

L'avantage d'utiliser un équilibreur de charge HTTP(S) externe global est qu'il vous permet de contrôler parfaitement la configuration de votre domaine personnalisé. Par exemple, il vous permet d'utiliser votre propre certificat TLS ou d'acheminer des chemins d'URL spécifiques vers le service Cloud Run. Il vous permet également de configurer Cloud CDN pour la mise en cache et Google Cloud Armor pour une sécurité supplémentaire.

Notez que vous pouvez également mapper plusieurs services sur un nom d'hôte ou un chemin d'accès dynamique dans votre format d'URL de domaine personnalisé pour un seul équilibreur de charge, par exemple <service>.example.com, à l'aide de masques d'URL.

Si vous n'avez pas encore défini d'équilibreur de charge HTTP(S) externe global, vous pouvez utiliser la fonctionnalité d'intégrations de Cloud Run afin de configurer rapidement un équilibreur de charge pour votre service Cloud Run. Consultez la page dédiée aux intégrations décrivant les domaines personnalisés sur Cloud Run utilisant un équilibreur de charge HTTP(S) externe global. Si vous utilisez déjà un équilibreur de charge HTTP(S) externe global, consultez la documentation sur la configuration d'un équilibreur de charge HTTP(S) externe global avec Cloud Run. Notez que l'utilisation de la fonctionnalité d'intégrations peut écraser certaines configurations d'équilibreur de charge existantes, telles que l'activation de CDN.

Mapper un domaine personnalisé à l'aide de Firebase Hosting

Avec cette option, vous configurez Firebase Hosting devant votre service Cloud Run et connectez un domaine de configuration à Firebase Hosting.

L'utilisation de Firebase Hosting est peu coûteuse, et vous permet éventuellement d'héberger et de diffuser du contenu statique en même temps que le contenu dynamique diffusé par votre service Cloud Run.

Pour mapper un domaine personnalisé à l'aide de Firebase Hosting :

  1. Ajoutez Firebase à votre projet Google Cloud.
  2. Installez la CLI Firebase.
  3. Dans un dossier différent du code source de votre service, créez un fichier firebase.json avec le contenu suivant :

      {
        "hosting": {
          "rewrites": [{
            "source": "**",
            "run": {
              "serviceId": "SERVICE_NAME",
              "region": "REGION"
            }
          }]
        }
      }
    

    Remplacez SERVICE_NAME et REGION par le nom et la région de votre service Cloud Run.

  4. Déployez la configuration Firebase Hosting :

    firebase deploy --only hosting --project PROJECT_ID
  5. Connectez un domaine personnalisé à Firebase Hosting.

Découvrez-en davantage sur Firebase Hosting et Cloud Run.

Mapper un domaine personnalisé à l'aide du mappage de domaine Cloud Run (disponibilité limitée)

Limites relatives au mappage de domaine Cloud Run

Les considérations suivantes s'appliquent aux mappages de domaines Cloud Run :

  • Un certificat géré par Google pour les connexions HTTPS est automatiquement émis et renouvelé lorsque vous mappez un service à un domaine personnalisé.
  • Le provisionnement du certificat SSL prend généralement environ 15 minutes, mais un délai maximal de 24 heures est parfois nécessaire.
  • Vous ne pouvez pas importer ni utiliser vos propres certificats (autogérés).
  • Les mappages de domaines Cloud Run sont limités à 64 caractères.
  • Le mappage de domaine est disponible dans les régions suivantes :
    • asia-east1
    • asia-northeast1
    • asia-southeast1
    • europe-north1
    • europe-west1
    • europe-west4
    • us-central1
    • us-east1
    • us-east4
    • us-west1
  • Pour mapper des domaines personnalisés dans d'autres régions, vous devez utiliser l'une des autres options de mappage.
  • Lorsque vous utilisez les mappages de domaine Cloud Run, vous mappez un domaine personnalisé à votre service, puis mettez à jour vos enregistrements DNS.
  • Vous pouvez mapper un domaine, tel que example.com, ou un sous-domaine, tel que subdomain.example.com.
  • Vous ne pouvez mapper un domaine qu'à /, et non à un chemin d'URL spécifique tel que /users.
  • Vous ne pouvez pas utiliser de certificats génériques avec cette fonctionnalité.

Mapper un domaine personnalisé à un service

Vous pouvez utiliser la console Google Cloud, gcloud CLI ou Terraform pour mapper un domaine personnalisé sur un service.

Console

  1. Ouvrez la page "Mappages de domaines" dans Google Cloud Console :
    Page "Mappages de domaines"

    Sachez que si votre fenêtre d'affichage est trop petite, le bouton Mapper les domaines personnalisés ne s'affiche pas. Vous devrez donc cliquer sur l'icône d'ellipse verticale à trois points située à droite de cette page.

  2. Sur la page Mappages de domaine, cliquez sur Add mapping (Ajouter un mappage).

  3. Dans la liste déroulante du formulaire Add mapping (Ajouter un mappage), sélectionnez le service vers lequel vous mappez le domaine personnalisé :

    Ajouter des mappages de domaine

  4. Saisissez le nom du domaine.

  5. Cliquez sur Continuer.

  6. Vous devez valider la propriété d'un domaine avant de pouvoir l'utiliser, sauf si vous l'avez acheté auprès de Google. Si vous souhaitez mapper subdomain.example.com ou subdomain1.subdomain2.example.com, vous devez valider la propriété de example.com. Pour en savoir plus sur le processus de validation de la propriété d'un domaine, consultez l'aide de Search Console.

  7. Mettez à jour vos enregistrements DNS sur le site Web de votre service d'enregistrement de noms de domaine avec les enregistrements DNS affichés à l'étape précédente. Vous pouvez afficher les enregistrements à tout moment en cliquant sur DNS Records (Enregistrements DNS) dans le menu d'actions "..." d'un mappage de domaine.

  8. Cliquez sur OK.

Ligne de commande

  1. Vous devez valider la propriété du domaine la première fois que vous l'utilisez dans le projet Google Cloud, sauf si vous avez acheté votre domaine personnalisé auprès de Google. Vous pouvez déterminer si le domaine personnalisé que vous souhaitez utiliser a été validé à l'aide de la commande.

    gcloud domains list-user-verified

    Si vous devez valider la propriété de votre domaine, ouvrez la page de validation de Search Console :

    gcloud domains verify BASE-DOMAIN

    BASE-DOMAIN est le domaine de base que vous souhaitez valider. Par exemple, si vous souhaitez mapper subdomain.example.com, vous devez valider la propriété de example.com.

    Dans Search Console, effectuez le processus de validation de propriété de domaine. Pour en savoir plus, consultez l'aide de Search Console.

  2. Mappez votre service avec le domaine personnalisé :

    gcloud beta run domain-mappings create --service SERVICE --domain DOMAIN
    • Remplacez SERVICE par le nom de votre service.
    • Remplacez DOMAIN par votre domaine personnalisé, par exemple example.com ou subdomain.example.com.

Terraform

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.

Pour créer un service Cloud Run, ajoutez le code suivant à votre fichier main.tf existant :

resource "google_cloud_run_service" "default" {
  name     = "cloud-run-srv"
  location = "us-central1"
  template {
    spec {
      containers {
        image = "gcr.io/cloudrun/hello"
      }
    }
  }
  traffic {
    percent         = 100
    latest_revision = true
  }
}

Remplacez la valeur de name par le nom de votre propre service.

Mappez votre service Cloud Run sur le domaine personnalisé :

data "google_project" "project" {}

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

Remplacez verified-domain.com par votre domaine validé personnalisé, par exemple example.com ou subdomain.example.com.

Ajouter des enregistrements DNS à votre compte de service d'enregistrement de noms de domaine

Une fois que vous avez mappé votre service avec un domaine personnalisé dans Cloud Run, vous devez mettre à jour les enregistrements DNS auprès de votre service d'enregistrement de noms de domaine. Pour plus de commodité, Cloud Run génère et affiche les enregistrements DNS que vous devez saisir. Pour que le mappage soit effectif, vous devez ajouter ces enregistrements, qui pointent vers le service Cloud Run, à votre compte de service d'enregistrement de noms de domaine.

Si vous utilisez Cloud DNS comme fournisseur DNS, consultez la section Ajouter un enregistrement.

  1. Récupérez les informations d'enregistrement DNS correspondant à votre mappage de domaine en utilisant les méthodes suivantes :

    Console

    1. Accédez à la page "Domain mappings" (Mappages de domaine) de Cloud Run :
      Page "Mappages de domaine"

    2. Cliquez sur l'icône d'ellipse verticale à trois points située à droite de votre service, puis cliquez sur DNS RECORDS (Enregistrements DNS) pour afficher tous les enregistrements DNS :

    sélectionner les enregistrements DNS

    Ligne de commande

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

    Remplacez [DOMAIN] par votre domaine personnalisé, par exemple example.com ou subdomain.example.com.

    Vous avez besoin de tous les enregistrements renvoyés sous l'en-tête resourceRecords.

  2. Connectez-vous au compte que vous avez créé auprès du service d'enregistrement de noms de domaine, puis ouvrez la page de configuration DNS.

  3. Recherchez la section des enregistrements d'hôtes sur la page de configuration de votre domaine, puis ajoutez chacun des enregistrements de ressources que vous avez reçus lorsque vous avez mappé votre domaine avec votre service Cloud Run.

  4. Lorsque vous ajoutez chacun des enregistrements DNS ci-dessus au compte du fournisseur DNS, procédez comme suit :

    • Sélectionnez le type renvoyé dans l'enregistrement DNS à l'étape précédente : A, AAAA ou CNAME.
    • Utilisez le nom www pour le mappage avec www.example.com.
    • Utilisez le nom @ pour le mappage avec example.com.
  5. Enregistrez les modifications dans la page de configuration DNS du compte du domaine. Dans la plupart des cas, ces modifications prennent effet en quelques minutes seulement, mais dans certains cas, cela peut prendre plusieurs heures. Tout dépend du bureau d'enregistrement et de la valeur TTL (Time To Live) des enregistrements DNS précédents pour votre domaine. Vous pouvez utiliser un outil dig, tel que la version en ligne de dig, pour vérifier que les enregistrements DNS ont bien été mis à jour.

  6. Vérifiez si la procédure a été exécutée correctement en accédant à votre service via sa nouvelle URL (par exemple, https://www.example.com). Notez que l'émission du certificat SSL géré peut prendre plusieurs minutes.

Ajouter des propriétaires de domaine validés à d'autres utilisateurs ou comptes de service

Lorsqu'un utilisateur valide un domaine, ce dernier est validé seulement pour le compte de cet utilisateur. Cela signifie que seul cet utilisateur peut ajouter d'autres mappages utilisant ce domaine. Par conséquent, pour permettre à d'autres utilisateurs d'ajouter des mappages utilisant ce domaine, vous devez les ajouter en tant que propriétaires validés.

Si vous devez ajouter des utilisateurs ou des comptes de service en tant que propriétaires validés de votre domaine, vous pouvez ajouter une autorisation via la page de Search Console :

  1. Dans votre navigateur Web, accédez à l'adresse suivante :

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

  2. Sous Propriétés, cliquez sur le domaine pour lequel vous souhaitez ajouter un utilisateur ou un compte de service.

  3. Faites défiler l'écran vers le bas jusqu'à la liste Propriétaires validés, cliquez sur Ajouter un propriétaire, puis saisissez l'adresse e-mail du compte Google ou l'ID du compte de service.

    Pour afficher la liste de vos comptes de service, ouvrez la page "Comptes de service" dans la console Google Cloud :

    Accéder à la page Comptes de service

Supprimer un mappage de domaine Cloud Run

Vous pouvez utiliser Google Cloud Console ou l'outil de ligne de commande gcloud pour supprimer un mappage de domaine.

Console

  1. Ouvrez la page "Mappages de domaines" dans Google Cloud Console :
    Page "Mappages de domaines"

  2. Sur la page Mappages de domaine, sélectionnez le mappage de domaine que vous souhaitez supprimer, puis cliquez sur Supprimer.

Command line

  1. Supprimez le mappage de domaine :

    gcloud beta run domain-mappings delete --domain DOMAIN
    • Remplacez DOMAIN par votre domaine personnalisé, par exemple example.com ou subdomain.example.com.

Utiliser des domaines personnalisés avec des services authentifiés

Les services authentifiés sont protégés par IAM. Les services {cloud_run_name}} nécessitent une authentification client qui déclare le destinataire souhaité d'une requête au moment de la génération des identifiants (l'audience).

L'audience est généralement l'URL complète du service cible, qui est par défaut une URL générée se terminant par run.app. Toutefois, si vous utilisez un domaine personnalisé, vous devez éviter d'utiliser cette URL run.app générée automatiquement comme audience. Configurez plutôt le service pour une audience personnalisée afin qu'il accepte votre domaine personnalisé comme audience d'authentification valide.

Enregistrer un domaine avec Cloud Domains dans la console Cloud Run

Pour enregistrer un domaine avec Cloud Domains à partir de la console Cloud Run, procédez comme suit :

  1. Accédez à Cloud Run
  2. Cliquez sur Gérer les domaines personnalisés.
  3. Cliquez sur Enregistrer le domaine.
  4. Suivez le processus d'enregistrement en suivant les instructions pour enregistrer un domaine.
  5. Mappez votre domaine à Cloud Run et ajoutez des enregistrements DNS à votre service d'enregistrement de noms de domaine.

Étapes suivantes

  • Pour configurer un domaine personnalisé pour Cloud Run à l'aide d'un équilibreur de charge HTTP(S) externe global avec Terraform, consultez cet exemple de code.