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 :
- Utilisez un équilibreur de charge d'application externe global (recommandé).
- Utilisez Firebase Hosting.
- Utilisez le mappage de domaine Cloud Run (disponibilité limitée et version bêta).
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.
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.
Consultez la documentation sur la configuration d'un équilibreur de charge d'application externe global avec Cloud Run.
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 à 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 :
- Ajoutez Firebase à votre projet Google Cloud.
- Installez la CLI Firebase.
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.
Déployez la configuration Firebase Hosting :
firebase deploy --only hosting --project PROJECT_ID
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 quesubdomain.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
Ouvrez la page "Mappages de domaines" dans Google Cloud Console :
Page "Mappages de domaines"Cliquez sur Ajouter un mappage.
Si votre fenêtre d'affichage est trop petite, le bouton Ajouter un mappage ne s'affiche pas. Vous devez cliquer sur l'icône d'ellipse verticale à trois points située dans le coin de la page.
Dans la liste déroulante, sélectionnez le service vers lequel vous mappez le domaine personnalisé.
Sélectionnez Mappages de domaines Cloud Run.
Dans le formulaire Ajouter un mappage, sélectionnez Valider un nouveau domaine.
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
ousubdomain1.subdomain2.example.com
, vous devez valider la propriété deexample.com
. Pour en savoir plus sur le processus de validation de la propriété d'un domaine, consultez l'aide de Search Console.Cliquez sur Continuer.
Une fois la validation du domaine terminée, cliquez sur Poursuivre la validation et fermer.
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.
Cliquez sur OK.
gcloud
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é en exécutant la commande suivante :
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
où
BASE-DOMAIN
est le domaine de base que vous souhaitez valider. Par exemple, si vous souhaitez mappersubdomain.example.com
, vous devez valider la propriété deexample.com
.Dans Search Console, effectuez le processus de validation de propriété de domaine. Pour en savoir plus, consultez l'aide de Search Console.
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 exempleexample.com
ousubdomain.example.com
.
- Remplacez
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 :
Remplacez la valeur de name
par le nom de votre propre service.
Mappez votre service Cloud Run sur le domaine personnalisé :
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.
Récupérez les informations d'enregistrement DNS correspondant à vos mappages de domaine en procédant comme suit :
Console
Accédez à la page "Domain mappings" (Mappages de domaine) de Cloud Run :
Page "Mappages de domaine"Cliquez sur l'icône d'ellipse verticale à trois points située à droite de votre service, puis cliquez sur ENREGISTREMENTS DNS pour afficher tous les enregistrements DNS :
gcloud
gcloud beta run domain-mappings describe --domain [DOMAIN]
Remplacez
[DOMAIN]
par votre domaine personnalisé, par exempleexample.com
ousubdomain.example.com
.Vous avez besoin de tous les enregistrements renvoyés sous l'en-tête
resourceRecords
.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.
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.
Lorsque vous ajoutez chacun des enregistrements DNS précédents 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
ouCNAME
. - Utilisez le nom
www
pour le mappage avecwww.example.com
. - Utilisez le nom
@
pour le mappage avecexample.com
.
- Sélectionnez le type renvoyé dans l'enregistrement DNS à l'étape précédente :
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 dedig
, pour vérifier que les enregistrements DNS ont bien été mis à jour.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
). 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 confirmés de votre domaine, vous pouvez ajouter une autorisation via la page de Search Console :
Accédez à l'adresse suivante dans votre navigateur Web :
Sous Propriétés, cliquez sur le domaine auquel vous souhaitez ajouter un utilisateur ou un compte de service.
Accédez à la liste Propriétaires confirmé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 :
Supprimer un mappage de domaine Cloud Run
Vous pouvez utiliser la console Google Cloud ou gcloud CLI pour supprimer un mappage de domaine.
Console
Ouvrez la page "Mappages de domaines" dans la console Google Cloud :
Page "Mappages de domaines"Sur la page Mappages de domaine, sélectionnez le mappage de domaine que vous souhaitez supprimer, puis cliquez sur Supprimer.
gcloud
Supprimez le mappage de domaine :
gcloud beta run domain-mappings delete --domain DOMAIN
- Remplacez
DOMAIN
par votre domaine personnalisé, par exempleexample.com
ousubdomain.example.com
.
- Remplacez
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.
Étape suivante
- 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.