Crea URLs personalizadas

En esta página, se describe cómo configurar y administrar URLs personalizadas, lo que te permite obtener una URL fácil de escribir, memorable y disponible a nivel global para tus servicios de Cloud Run en lugar de la URL determinística predeterminada:

  • Formato de URL personalizada: https://CUSTOM_URL_DOMAIN.cloud.run
  • Formato de URL predeterminado: https://SERVICE_NAME-PROJECT_NUMBER.REGION.run.app

Con las URLs personalizadas, puedes compartir tus servicios sin configurar dominios personalizados, registros DNS ni balanceadores de cargas externos.

Cuando usas URLs personalizadas para tus servicios de Cloud Run, obtienes los siguientes beneficios:

  • URLs simples: Asigna tu servicio a un formato https://CUSTOM_URL_DOMAIN.cloud.run claro.
  • Disponibilidad global: Se puede acceder a las URLs personalizadas desde cualquier lugar, al igual que a las URLs estándar de .run.app.
  • Ciclo de vida flexible: Puedes adjuntar, separar o mover una URL personalizada entre servicios de forma flexible sin implementar una nueva revisión.
  • Varias asignaciones: Puedes asignar varias URLs personalizadas a un solo servicio.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud . Si es la primera vez que usas Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Configura tu entorno de desarrollo de Cloud Run en tu Google Cloud proyecto.
  7. Instala y, luego, inicializa gcloud CLI.

Roles obligatorios

Para obtener los permisos que necesitas para administrar URLs personalizadas, pídele a tu administrador que te otorgue los siguientes roles de IAM:

  • Para crear, actualizar o borrar asignaciones de URLs personalizadas, otorga Administrador de Cloud Run (roles/run.admin) en el proyecto.

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Limitaciones

  • De forma predeterminada, puedes asignar hasta 50 dominios por proyecto.
  • El subdominio de la URL personalizada debe tener entre 6 y 63 caracteres, cumplir con las convenciones de nomenclatura de DNS estándar que permiten caracteres alfanuméricos y guiones, y no puede comenzar ni terminar con un guion.
  • Algunos subdominios están restringidos.
  • No puedes inhabilitar temporalmente una URL personalizada como lo haces con una URL .run.app predeterminada. Para dejar de publicar tráfico desde allí, debes borrar la asignación.
  • No se admiten los servicios de Cloud Run que restringen la entrada al tráfico interno o interno y de Cloud Load Balancing.
  • Terraform no admite URLs personalizadas. Para evitar posibles cambios que interrumpan el sistema, no uses el recurso de domain_mapping de vista previa.
  • Las URLs personalizadas son completamente independientes. Si decides inhabilitar la URL predeterminada de .run.app para un servicio, tu asignación de URL personalizada permanecerá completamente activa y accesible.

Cómo conectar o asignar una URL personalizada a un servicio

Puedes adjuntar una URL personalizada a un servicio nuevo cuando lo implementes o asignar una URL personalizada a un servicio existente con la consola de Google Cloud o gcloud.

Cómo adjuntar URLs personalizadas a un servicio nuevo

Cuando implementas un servicio nuevo de Cloud Run, puedes adjuntar una URL personalizada como parte de la configuración de implementación.

  1. En la consola de Google Cloud , ve a la página Servicios de Cloud Run.

    Ir a Cloud Run

  2. Haz clic en Implementar contenedor.

  3. Completa los detalles de configuración básicos de tu servicio.

  4. En la sección URLs personalizadas, haz clic en Agregar una URL personalizada.

  5. Ingresa un dominio de URL personalizada válido.

  6. Es opcional. Para agregar varias URLs personalizadas, vuelve a hacer clic en Agregar una URL personalizada.

  7. Haz clic en Crear.

Asigna URLs personalizadas a un servicio existente

Puedes asignar una URL personalizada a un servicio de Cloud Run existente con la consola deGoogle Cloud o gcloud CLI.

Console

  1. En la consola de Google Cloud , ve a la página Asignaciones de dominios.

    Ir a Mapeos de dominios

  2. Haz clic en Agregar URL personalizada.

  3. En la lista Servicio, selecciona el servicio al que deseas asignar el dominio.

  4. Ingresa el dominio de tu URL personalizada.

  5. Haz clic en Continuar.

Si quieres agregar varias URLs personalizadas, vuelve a hacer clic en Agregar una URL personalizada y sigue los pasos anteriores.

gcloud

Para crear una asignación de dominio de URL personalizada para un servicio existente, ejecuta el siguiente comando:

gcloud beta run domain-mappings create \
    --service=SERVICE_NAME \
    --domain=CUSTOM_URL_DOMAIN.cloud.run

Reemplaza lo siguiente:

  • SERVICE_NAME: Es el nombre del servicio al que asignas la URL personalizada.
  • CUSTOM_URL_DOMAIN: Es el subdominio que deseas adjuntar.

Es opcional. Para asignar varias URLs personalizadas con gcloud CLI, ejecuta el comando de creación de asignación varias veces para cada URL personalizada:

gcloud beta run domain-mappings create \
    --service=SERVICE_NAME \
    --domain=CUSTOM_URL_DOMAIN_1.cloud.run

gcloud beta run domain-mappings create \
    --service=SERVICE_NAME \
    --domain=CUSTOM_URL_DOMAIN_2.cloud.run

Reemplaza lo siguiente:

  • SERVICE_NAME: Es el nombre del servicio que implementas.
  • CUSTOM_URL_DOMAIN_1: Es el primer subdominio que se adjuntará.
  • CUSTOM_URL_DOMAIN_2: Es el segundo subdominio que se adjuntará.

Si el subdominio solicitado ya está en uso por otro usuario o servicio en Google Cloud, recibirás un error y deberás elegir un destino único.

Cómo ver y enumerar URLs personalizadas

Puedes enumerar todas las URLs personalizadas y ver los detalles de la asignación de tu entorno.

Console

  1. En la consola de Google Cloud , ve a la página Cloud Run.

    Ir a Cloud Run

  2. Haz clic en el nombre del servicio.

  3. Ve a la pestaña Herramientas de redes.

  4. Ubica las URLs adjuntas en la sección Dominios personalizados, debajo de la etiqueta Extremos.

gcloud

Para enumerar todas las URLs personalizadas y las asignaciones de dominios en un proyecto, ejecuta el siguiente comando:

gcloud beta run domain-mappings list

Para ver los detalles de una asignación de dominio de URL personalizada específica, ejecuta el siguiente comando:

gcloud beta run domain-mappings describe \
    --domain=CUSTOM_URL_DOMAIN.cloud.run

Reemplaza CUSTOM_URL_DOMAIN por el subdominio que deseas describir.

Protege tu contenido con públicos personalizados

Puedes adjuntar un público personalizado a tu URL personalizada para restringir el acceso.

gcloud beta run services update SERVICE_NAME \
    --add-custom-audiences=CUSTOM_URL_DOMAIN.cloud.run

Reemplaza lo siguiente:

  • SERVICE_NAME: El nombre de tu servicio.
  • CUSTOM_URL_DOMAIN: Es el subdominio que actúa como tu público personalizado.

Cómo borrar una URL personalizada

Puedes borrar una asignación de URL personalizada cuando ya no la necesites.

Console

  1. En la consola de Google Cloud , ve a la página Asignaciones de dominios.

    Ir a Mapeos de dominios

  2. Selecciona la casilla de verificación junto a la URL personalizada que deseas borrar.

  3. Haz clic en Borrar.

gcloud

Para quitar una asignación de dominio de URL personalizada de un servicio de Cloud Run, ejecuta el siguiente comando:

gcloud beta run domain-mappings delete \
    --domain=CUSTOM_URL_DOMAIN.cloud.run

Reemplaza CUSTOM_URL_DOMAIN por el subdominio que deseas borrar.

Problemas conocidos

  • Latencia de propagación: Es posible que pasen algunos segundos después de crear una URL personalizada antes de que esté completamente operativa. Acceder a la URL inmediatamente después de la creación puede generar un error de enrutamiento temporal.

  • Actualizar o mover una URL personalizada: No hay un comando de actualización directa para las URLs personalizadas. Para mover una URL personalizada adjunta de un servicio a otro, debes seguir un flujo de eliminación y recreación.

    Console

    1. En la consola de Google Cloud , ve a la página Asignaciones de dominios.

      Ir a Mapeos de dominios

    2. Selecciona la casilla de verificación junto a la URL personalizada que deseas mover.

    3. Haz clic en Borrar.

    4. Haz clic en Agregar URL personalizada.

    5. En la lista Servicio, selecciona el nuevo servicio de destino.

    6. Ingresa el dominio exacto de la URL personalizada que reclamaste anteriormente.

    7. Haz clic en Crear para redireccionar el tráfico al servicio nuevo.

    gcloud

    1. Borra la asignación existente del servicio anterior:

      gcloud beta run domain-mappings delete \
          --domain=CUSTOM_URL_DOMAIN.cloud.run

      Reemplaza CUSTOM_URL_DOMAIN por el subdominio que reclamaste anteriormente.

    2. Reclama la URL y asígnala al servicio nuevo:

      gcloud beta run domain-mappings create \
          --service=NEW_SERVICE_NAME \
          --domain=CUSTOM_URL_DOMAIN.cloud.run

      Reemplaza lo siguiente:

      • NEW_SERVICE_NAME: Es el nombre del servicio al que moverás la URL personalizada.
      • CUSTOM_URL_DOMAIN: Es el subdominio que deseas adjuntar.

¿Qué sigue?