Puedes configurar un dominio personalizado en lugar de la dirección predeterminada que proporciona Cloud Run para un servicio implementado.
Existen algunas formas de configurar un dominio personalizado para un servicio de Cloud Run:
- Usa un balanceador de cargas de HTTP(S) externo global
- Usa Firebase Hosting
- Usa la asignación de dominios de Cloud Run (disponibilidad limitada)
Puedes mapear varios dominios personalizados al mismo servicio de Cloud Run.
Antes de comenzar
Compra un dominio nuevo, a menos que ya tengas uno que desees usar. Puedes usar cualquier registrador de nombres de dominio.
Si deseas registrar un dominio con Cloud Domains, consulta Registra un dominio con Cloud Domains en la consola de Cloud Run.
Asigna un dominio personalizado con un balanceador de cargas HTTP(S) externo global
Con esta opción, agregas un balanceador de cargas de HTTP(S) externo global delante del servicio de Cloud Run y configuras un dominio personalizado a nivel del balanceador de cargas.
Una ventaja de usar un balanceador de cargas de HTTP(S) externo global es que te brinda mucho control sobre la configuración del dominio personalizado. Por ejemplo, te permite usar tu propio certificado TLS o enrutar rutas de URL específicas al servicio de Cloud Run. También te permite configurar Cloud CDN para el almacenamiento en caché y Google Cloud Armor a fin de obtener seguridad adicional.
Observa que también puedes asignar varios servicios a un nombre de host dinámico o una ruta de acceso en el patrón de URL de dominio personalizado para un solo balanceador de cargas, por ejemplo, <service>.example.com
, mediante máscaras de URL.
Si actualmente no usas un balanceador de cargas de HTTP(S) externo global, puedes usar la función de integraciones de Cloud Run a fin de configurar con rapidez un balanceador de cargas para tu servicio de Cloud Run. Consulta la página de integración de dominios personalizados en Cloud Run mediante el balanceador de cargas de HTTP(S) externo global. Si ya usas un balanceador de cargas de HTTP(S) externo global, consulta la documentación sobre la configuración del balanceador de cargas de HTTP(S) externo global con Cloud Run. Ten en cuenta que el uso de la función de integraciones puede reemplazar algunas configuraciones del balanceador de cargas existentes, como la habilitación de CDN.
Asigna un dominio personalizado con Firebase Hosting
Con esta opción, puedes configurar Firebase Hosting delante del servicio de Cloud Run y conectar un dominio de configuración a Firebase Hosting.
Firebase Hosting tiene un precio bajo y, de forma opcional, te permite alojar y entregar contenido estático junto con el contenido dinámico que entrega tu servicio de Cloud Run.
Para asignar un dominio personalizado con Firebase Hosting, haz lo siguiente:
- Agrega Firebase a tu proyecto de Google Cloud
- Instala Firebase CLI
En una carpeta diferente de la del código fuente de tu servicio, crea un archivo
firebase.json
con el siguiente contenido:{ "hosting": { "rewrites": [{ "source": "**", "run": { "serviceId": "SERVICE_NAME", "region": "REGION" } }] } }
Reemplaza SERVICE_NAME y REGION por el nombre y la región de tu servicio de Cloud Run.
Implementa la configuración de Firebase Hosting:
firebase deploy --only hosting --project PROJECT_ID
Obtén más información sobre Firebase Hosting y Cloud Run.
Asigna un dominio personalizado con la asignación de dominios de Cloud Run (disponibilidad limitada)
Limitaciones del mapeo de dominios de Cloud Run
Las siguientes consideraciones se aplican a las asignaciones de dominios de Cloud Run:
- Se emite y renueva automáticamente un certificado administrado por Google para conexiones HTTPS cuando se mapea un servicio a un dominio personalizado.
- El aprovisionamiento del certificado SSL suele demorar unos 15 minutos, pero puede tardar hasta 24 horas.
- No puedes subir y usar tus propios certificados (autoadministrados).
- Las asignaciones de dominios de Cloud Run tienen un límite de 64 caracteres.
- La asignación de dominios está disponible en las siguientes regiones:
asia-east1
asia-northeast1
asia-southeast1
europe-north1
europe-west1
europe-west4
us-central1
us-east1
us-east4
us-west1
- Para asignar dominios personalizados en otras regiones, debes usar una de las otras opciones de asignación.
- Cuando usas las asignaciones de dominio de Cloud Run, asigna un dominio personalizado a tu servicio y, luego, actualiza tus registros DNS.
- Puedes mapear un dominio, como
example.com
, o un subdominio, comosubdomain.example.com
. - Solo puedes asignar un dominio a
/
, no a una ruta de URL específica como/users
. - No puedes usar certificados comodín con esta función.
Asigna un dominio personalizado a un servicio
Puedes usar la consola de Google Cloud, la CLI de gcloud o Terraform para asignar un dominio personalizado a un servicio.
Consola
Abre la página Mapeos de dominios en la consola de Google Cloud:
página Mapeos de dominiosTen en cuenta que si tu ventana de visualización es demasiado pequeña, no se muestra el botón Mapping Custom Domains y debes hacer clic en el ícono de puntos suspensivos verticales en la esquina derecha de la página.
En la página Mapeos de dominios, haz clic en Agregar asignación.
En la lista desplegable del formulario Add Mapping (Agregar asignación), selecciona el servicio al que le asignarás el dominio personalizado:
Ingresa el nombre de dominio.
Haga clic en Continuar.
Debes verificar la propiedad de un dominio antes de poder usarlo, a menos que hayas comprado el dominio de Google. Si deseas asignar
subdomain.example.com
osubdomain1.subdomain2.example.com
, debes verificar la propiedad deexample.com
. Para obtener más información sobre la verificación de la propiedad de dominios, consulta la ayuda de Search Console.Actualiza los registros DNS en el sitio web del registrador de dominios mediante los registros DNS que se muestran en el último paso. Puedes ver los registros en cualquier momento si haces clic en Registros DNS en el menú de acciones “…” de una asignación de dominio.
Haz clic en Listo.
Línea de comandos
Debes verificar la propiedad del dominio la primera vez que lo usas en el proyecto de Google Cloud, a menos que le hayas comprado tu dominio personalizado a Google. Puedes determinar si el dominio personalizado que deseas usar se verificó mediante el siguiente comando:
gcloud domains list-user-verified
Si es necesario verificar la propiedad del dominio, abre la página de verificación de Search Console:
gcloud domains verify BASE-DOMAIN
En el ejemplo anterior,
BASE-DOMAIN
es el dominio base que deseas verificar. Por ejemplo, si deseas asignarsubdomain.example.com
, debes verificar la propiedad deexample.com
.En Search Console, completa la verificación de propiedad del dominio. Para obtener más información, consulta la ayuda de Search Console.
Asigna el servicio al dominio personalizado:
gcloud beta run domain-mappings create --service SERVICE --domain DOMAIN
- Reemplaza
SERVICE
por el nombre del servicio. - Reemplaza
DOMAIN
por el dominio personalizado, por ejemplo,example.com
osubdomain.example.com
.
- Reemplaza
Terraform
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Para crear un servicio de Cloud Run, agrega lo siguiente al archivo main.tf
existente:
Reemplaza el valor de name
por el nombre de tu propio servicio.
Asigna el servicio de Cloud Run al dominio personalizado:
Reemplaza verified-domain.com
por el dominio verificado personalizado, por ejemplo, example.com
o subdomain.example.com
.
Agrega los registros DNS al registrador de dominios
Después de asignar el servicio a un dominio personalizado en Cloud Run, debes actualizar los registros DNS en el registrador de dominios. Para tu comodidad, Cloud Run genera y muestra los registros DNS que debes ingresar. Debes agregar estos registros que apuntan al servicio de Cloud Run en el registrador de dominios para que el mapeo entre en vigor.
Si usas Cloud DNS como proveedor de DNS, consulta Agrega un registro.
A fin de recuperar la información del registro DNS para los mapeos de dominios, sigue estos pasos:
Console
Ve a la página Asignaciones de dominios de Cloud Run:
Página Asignaciones de dominiosHaz clic en el ícono del menú de 3 puntos verticales que se encuentra a la derecha del servicio y, luego, haz clic en DNS RECORDS (REGISTROS DNS) para ver todos los registros DNS:
Línea de comandos
gcloud beta run domain-mappings describe --domain [DOMAIN]
Reemplaza
[DOMAIN]
por el dominio personalizado, por ejemplo,example.com
osubdomain.example.com
.Necesitas todos los registros que se muestran en el encabezado
resourceRecords
.Accede a tu cuenta en el registrador de dominios y, luego, abre la página de la configuración de DNS.
Ubica la sección de registros de host de la página de configuración del dominio y, luego, agrega cada uno de los registros de recursos que recibiste cuando asignaste el dominio al servicio de Cloud Run.
Cuando agregues los registros DNS anteriores a la cuenta en el proveedor de DNS, haz lo siguiente:
- Selecciona el tipo que se muestra en el registro DNS en el paso anterior:
A
,AAAA
oCNAME
. - Usa el nombre
www
para asignar awww.example.com
. - Usa el nombre
@
para mapearexample.com
.
- Selecciona el tipo que se muestra en el registro DNS en el paso anterior:
Guarda los cambios en la página de configuración de DNS de la cuenta del dominio. En la mayoría de los casos, la aplicación de estos cambios toma solo unos minutos, pero en algunos casos puede tomar varias horas, en función del registrador y el tiempo de actividad (TTL) de cualquier registro DNS anterior del dominio. Puedes usar una herramienta de
dig
, como esta versión dedig
en línea, para confirmar que los registros DNS se hayan actualizado de forma correcta.Navega al servicio con la URL nueva para probar si funciona, por ejemplo,
https://www.example.com
. Ten en cuenta que el certificado SSL administrado puede tardar varios minutos en emitirse.
Agrega propietarios de dominios verificados a otros usuarios o cuentas de servicio
Cuando un usuario verifica un dominio, ese dominio solo se verifica en la cuenta de ese usuario. Esto significa que solo ese usuario puede agregar más asignaciones de dominio que usen ese dominio. Por lo tanto, para habilitar que otros usuarios agreguen asignaciones que usen ese dominio, debes agregarlos como propietarios verificados.
Si necesitas agregar propietarios verificados del dominio a otros usuarios o cuentas de servicio, puedes agregar permisos a través de la página Search Console:
Dirígete a esta dirección en el navegador web:
En Propiedades, haz clic en el dominio al que deseas agregarle un usuario o una cuenta de servicio.
Desplázate hacia abajo a la lista de Propietarios verificados, haz clic en Agregar un propietario y, a continuación, ingresa la dirección de correo electrónico de una Cuenta de Google o el ID de una cuenta de servicio.
Para ver una lista de las cuentas de servicio, abre la página Cuentas de servicio en la consola de Google Cloud:
Borra una asignación de dominio de Cloud Run
Puedes usar la consola de Google Cloud o la herramienta de línea de comandos de gcloud
para borrar una asignación de dominio.
Console
Abre la página Mapeos de dominios en la consola de Google Cloud:
página Mapeos de dominiosEn la página Asignaciones de dominio, selecciona la asignación de dominio que deseas borrar y haz clic en Borrar.
Línea de comandos
Borra la asignación del dominio:
gcloud beta run domain-mappings delete --domain DOMAIN
- Reemplaza
DOMAIN
por el dominio personalizado, por ejemplo,example.com
osubdomain.example.com
.
- Reemplaza
Usa dominios personalizados con servicios autenticados
Los servicios autenticados están protegidos por IAM. Estos servicios de {cloud_run_name}} requieren una autenticación de cliente que declara al destinatario previsto de una solicitud durante la generación de la credencial (el público).
El público suele ser la URL completa del servicio de destino, que de forma predeterminada es una URL generada que termina en run.app
para los servicios de Cloud Run. Sin embargo, si usas un dominio personalizado, debes evitar usar esa URL run.app
generada de forma automática como público.
En su lugar, configura el servicio para un público personalizado para que acepte tu dominio personalizado como un público de autenticación válido.
Registra un dominio con Cloud Domains en la consola de Cloud Run
Para registrar un dominio en Cloud Domains en la consola de Cloud Run, sigue estos pasos:
- Ir a Cloud Run
- Haz clic en Administrar dominios personalizados.
- Hacer clic en Registrar dominio
- Sigue las instrucciones de Registra un dominio para completar el proceso de registro.
- Mapea tu dominio a Cloud Run y agrega registros DNS al registrador de dominios.
¿Qué sigue?
- A fin de configurar un dominio personalizado para Cloud Run mediante un balanceador de cargas de HTTP(S) externo global con Terraform, explora este código de muestra.