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.

Mapper un domaine personnalisé à l'aide d'un équilibreur de charge d'application externe global

Avec cette option, vous ajoutez un équilibreur de charge d'application 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 d'application 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 d'application 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 d'application externe global. Si vous utilisez déjà un équilibreur de charge d'application externe global, reportez-vous à la documentation sur la configuration d'un équilibreur de charge d'application 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

La méthode la plus simple et recommandée pour utiliser Firebase Hosting pour mapper un domaine personnalisé consiste à utiliser la fonctionnalité d'intégrations Cloud Run pour Firebase Hosting. Si vous ne souhaitez pas utiliser la fonctionnalité d'intégration Firebase Hosting, vous pouvez également utiliser une approche manuelle pour configurer 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 et version bêta)

Limites relatives au mappage de domaine Cloud Run

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

  • Les mappages de domaines Cloud Run sont en phase de lancement bêta. En raison de problèmes de latence, ils ne sont pas prêts pour la production et ne sont pas pris en charge en disponibilité générale. Pour le moment, cette option n'est pas recommandée pour les services de production.
  • 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 désactiver TLS 1.0 et 1.1. Si cela pose problème, vous pouvez utiliser Firebase Hosting ou Cloud Load Balancing pour activer le trafic TLS 1.2 uniquement.
  • 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"

  2. Cliquez sur Ajouter un mappage.

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

  3. Dans la liste déroulante, sélectionnez le service vers lequel vous mappez le domaine personnalisé.

  4. En fonction de la région définie pour le service sélectionné, le formulaire affiche les options disponibles pour ajouter un domaine personnalisé:

    • Firebase Hosting à l'aide d'intégrations Cloud Run
    • Domaines personnalisés : Google Cloud Load Balancing avec des intégrations Cloud Run
    • Mappages de domaines Cloud Run

    Sélectionnez Mappages de domaines Cloud Run.

  5. Dans le formulaire Ajouter un mappage, sélectionnez Valider un nouveau domaine.

  6. Dans le champ Domaine de base à valider, 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. Cliquez sur Continuer.

  8. Une fois la validation du domaine terminée, cliquez sur Poursuivre la validation et fermer.

  9. 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.

  10. 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_v2_service" "default" {
  name     = "cloud-run-srv"
  location = "us-central1"
  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
  }
}

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_v2_service.default.location
  metadata {
    namespace = data.google_project.project.project_id
  }
  spec {
    route_name = google_cloud_run_v2_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 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.

Étapes suivantes

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