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 aplicaciones externo global (Recomendado)
- Usa Firebase Hosting
- Usa la asignación de dominios de Cloud Run (disponibilidad limitada y vista previa)
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.
Asigna un dominio personalizado con un balanceador de cargas de aplicaciones externo global
Con esta opción, agregas un balanceador de cargas de aplicaciones 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 aplicaciones 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.
Consulta la documentación sobre cómo configurar un balanceador de cargas de aplicaciones externo global con Cloud Run.
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 y vista previa)
Limitaciones del mapeo de dominios de Cloud Run
Las siguientes consideraciones se aplican a las asignaciones de dominios de Cloud Run:
- Las asignaciones de dominios de Cloud Run se encuentran en la etapa de lanzamiento de vista previa. Debido a problemas de latencia, no están listas para la producción y no son compatibles con la disponibilidad general. Por el momento, no se recomienda esta opción para los servicios de producción.
- 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 inhabilitar TLS 1.0 y 1.1. Si esto genera algún problema, puedes usar Firebase Hosting o Cloud Load Balancing para habilitar el tráfico solo TLS 1.2.
- 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.
Console
Abre la página Mapeos de dominios en la consola de Google Cloud:
página Mapeos de dominiosHaz clic en Agregar mapeo.
Ten en cuenta que si tu ventana de visualización es demasiado pequeña, no se muestra el botón Agregar 3 mapeo y debes hacer clic en el ícono de puntos suspensivos verticales en la esquina derecha de la página.
En la lista desplegable, selecciona el servicio al que asignas el dominio personalizado.
Según la región que se configure para el servicio seleccionado, el formulario muestra las opciones disponibles a fin de agregar un dominio personalizado:
- Firebase Hosting con integraciones de Cloud Run
- Dominios personalizados: Google Cloud Load Balancing mediante integraciones de Cloud Run
- Asignaciones de dominios de Cloud Run
Selecciona Asignaciones de dominio de Cloud Run.
En el formulario Agregar asignación, selecciona Verificar un dominio nuevo.
En el campo Dominio base para verificar, debes verificar la propiedad de un dominio antes de poder usarlo, a menos que hayas comprado el dominio a 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 del dominio, consulta la ayuda de Search Console.Haz clic en Continuar.
Cuando finalice la verificación del dominio, haz clic en Continuar la verificación y cerrar.
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.
gcloud
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:
gcloud
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 Mapeos de dominio, selecciona la asignación de dominio que deseas borrar y haz clic en Borrar.
gcloud
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 requieren una autenticación de cliente que declare el 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 automáticamente 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.
¿Qué sigue?
- A fin de configurar un dominio personalizado para Cloud Run mediante un balanceador de cargas de aplicaciones externo global con Terraform, explora este código de muestra.