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 HTTP(S) externe global.
- Utilisez Firebase Hosting.
- Utilisez le mappage de domaine Cloud Run (disponibilité limitée).
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 :
- 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)
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 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"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.
Sur la page Mappages de domaine, cliquez sur Add mapping (Ajouter un mappage).
Dans la liste déroulante du formulaire Add mapping (Ajouter un mappage), sélectionnez le service vers lequel vous mappez le domaine personnalisé :
Saisissez le nom du domaine.
Cliquez sur Continuer.
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.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.
Ligne de commande
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
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 à votre mappage de domaine en utilisant les méthodes suivantes :
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 DNS RECORDS (Enregistrements DNS) pour afficher tous les enregistrements DNS :
Ligne de commande
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 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
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
). 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 :
Dans votre navigateur Web, accédez à l'adresse suivante :
Sous Propriétés, cliquez sur le domaine pour lequel vous souhaitez ajouter un utilisateur ou un compte de service.
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 :
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
Ouvrez la page "Mappages de domaines" dans Google Cloud Console :
Page "Mappages de domaines"Sur la page Mappages de domaine, sélectionnez le mappage de domaine que vous souhaitez supprimer, puis cliquez sur Supprimer.
Command line
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_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 :
- Accédez à Cloud Run
- Cliquez sur Gérer les domaines personnalisés.
- Cliquez sur Enregistrer le domaine.
- Suivez le processus d'enregistrement en suivant les instructions pour enregistrer un domaine.
- 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.