En esta guía, se explica cómo configurar los mapas de URL de Google Cloud. Un mapa de URL es un conjunto de reglas para enrutar solicitudes HTTP(S) entrantes a servicios de backend o buckets específicos.
Un mapa de URL mínimo coincide con todas las rutas de solicitud entrantes (/*
).
Antes de seguir las instrucciones de esta guía, familiarízate con los conceptos de los mapas de URL.
Los mapas de URL se usan con los siguientes productos de Google Cloud:
- Balanceador de cargas de aplicaciones externo (modosglobal, clásico y regional)
- Balanceador de cargas de aplicaciones interno
Los mapas de URL que se usan con balanceadores de cargas de aplicaciones externos, los balanceadores de cargas de aplicaciones externos regionales, los balanceadores de cargas de aplicaciones internos y Cloud Service Mesh también admiten varias funciones avanzadas de administración de tráfico. Para obtener más información, consulta Conceptos de mapas de URL: Administración avanzada de tráfico.
Valores predeterminados del mapa de URL
Los mapas de URL tienen dos valores predeterminados, como se describe en la siguiente tabla.
Predeterminado | Configuración | Significado |
---|---|---|
Configuración predeterminada del mapa de URL | gcloud compute url-maps create
|
El servicio de backend o bucket de backend predeterminado especificado se usa si ninguno de los comparadores de rutas de acceso o reglas de host coinciden con la URL entrante. |
Configuración predeterminada del comparador de rutas de acceso | gcloud compute url-maps add-path-matcher
|
El servicio de backend o bucket de backend predeterminado especificado se usa si la ruta de acceso de la URL coincide con un comparador de rutas, pero ninguna de las --path-rules especificadas coincide. |
Reglas de host
Una regla de host define un conjunto de hosts con los que se deben hacer coincidir las solicitudes.
En una regla de host, el nombre de host debe ser un nombre de dominio completamente calificado (FQDN). El nombre de host no puede ser una dirección IPv4 o IPv6. Por ejemplo:
- Works:
example.com
- Works:
web.example.com
- Works:
*.example.com
- No funciona:
35.244.221.250
Configura mapas de URL
Un mapa de URL puede enviar tráfico a los servicios de backendo a los buckets de backend. Los buckets de backend no son compatibles con balanceadores de cargas de aplicaciones regionales externos ni balanceadores de cargas de aplicación internos.
.Console
Para agregar un mapa de URL mediante la consola de Google Cloud, sigue estos pasos:
- Ve a la página Balanceo de cargas.
- Haz clic en el Nombre de un balanceador de cargas.
- En la página Detalles del balanceador de cargas, haz clic en Editar para el balanceador de cargas seleccionado.
- Selecciona Reglas de host y ruta.
- Haz clic en Agrega la regla de host y de ruta.
Completa el campo Host, el campo Rutas de acceso o ambos, y selecciona un servicio de backend o bucket de backend.
- Ingresa un Nombre de host completamente calificado, como
web.example.com
. - Ingresa la ruta de acceso, por ejemplo,
/video
. - En la página Reglas de host y ruta de acceso, en el menú Backends, selecciona un servicio de backend o un bucket de backendque esté disponible.
- Ingresa un Nombre de host completamente calificado, como
Revisa que aparezca una marca de verificación azul a la izquierda de Reglas de host y ruta y haz clic en el botón Actualizar.
gcloud
Para agregar un mapa de URL mediante Google Cloud CLI, usa el comando url-maps create
:
gcloud compute url-maps create URL_MAP_NAME \ (--default-backend-bucket=DEFAULT_BACKEND_BUCKET | --default-service=DEFAULT_SERVICE) \ [--description DESCRIPTION] \ [--global | --region=REGION]
En el caso de los balanceadores de cargas de aplicaciones externos regionales y los balanceadores de cargas de aplicaciones internos, asegúrate de incluir la marca --region
cuando crees el mapa de URL.
Para borrar un comparador de rutas, usa el comando gcloud compute url-maps add-path-matcher
:
gcloud compute url-maps add-path-matcher URL_MAP_NAME \ (--default-backend-bucket=DEFAULT_BACKEND_BUCKET | --default-service=DEFAULT_SERVICE) \ --path-matcher-name PATH_MATCHER \ [--path-rules="PATH=SERVICE or BUCKET"]
Este comando requiere un servicio de backend o un bucket de backend predeterminado al que pueda enviar las solicitudes sin coincidencia. La marca --path-rules
define las asignaciones entre las rutas de solicitud y los servicios o buckets de backend. En el siguiente ejemplo, se envían las rutas de solicitud /video/
y /video/*
al servicio de backend video-service
:
--path-rules="/video=video-service,/video/*=video-service"
Para crear una regla de host, usa el comando gcloud compute url-maps add-host-rule
:
gcloud compute url-maps add-host-rule URL_MAP_NAME \ --hosts=[HOSTS] --path-matcher-name=PATH_MATCHER
Por ejemplo, el siguiente valor --hosts
hace coincidir las solicitudes con www.example.com
y cualquier subdominio de altostrat.com
:
--hosts=[*.altostrat.com,www.example.com]
Para cambiar el servicio predeterminado o el bucket predeterminado de un mapa de URL, usa el comando url-maps set-default-service
:
gcloud compute url-maps set-default-service URL_MAP_NAME (--default-backend-bucket=DEFAULT_BACKEND_BUCKET | --default-service=DEFAULT_SERVICE)[GCLOUD_WIDE_FLAG ...]
Terraform
Para crear un mapa de URL global, usa el recurso google_compute_url_map.
Para crear un mapa de URL regional, usa el recurso google_compute_region_url_map.
Valida la configuración del mapa de URL
Antes de implementar un mapa de URL, asegúrate de validar la configuración del mapa de URL para garantizar que el mapa enrute las solicitudes a los backends correspondientes, según lo previsto. Puedes hacer esto mediante la adición de pruebas a la configuración del mapa de URL. Puedes experimentar con diferentes reglas del mapa de URL y ejecutar todas las pruebas necesarias para asegurarte de que el mapa enrutará el tráfico de forma adecuada cuando se implemente. Además, si se necesitan cambios en las reglas en el futuro, puedes probar esos cambios antes de que se publique la configuración nueva.
Usa el comando gcloud compute url-maps
validate
para validar la configuración del mapa de URL. Este comando solo prueba la configuración proporcionada.
Independientemente de si las pruebas pasan o fallan, no se guardan cambios en el mapa de URL implementado. Este comportamiento es diferente al de otros comandos de mapas de URL (edit
, import
), que también ejecutan las mismas pruebas, pero guardarán la configuración nueva si se aprueban. Cuando desees probar una configuración de enrutamiento nueva sin realizar cambios en el mapa de URL implementado, usa el comando validate
.
El comando validate
te permite probar configuraciones de rutas avanzadas, como el enrutamiento basado en encabezados y parámetros de búsqueda, redireccionamientos HTTP a HTTPS y reescrituras de URL.
Console
No puedes usar la consola de Google Cloud para validar la configuración del mapa de URL.
Usa gcloud
o la API de REST en su lugar.
gcloud
Para validar la configuración del mapa de URL, usa el comando gcloud compute url-maps validate
.
Para el balanceador de cargas de aplicaciones externo global:
gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE \ --load-balancing-scheme=EXTERNAL_MANAGED \ --global
Para el balanceador de cargas de aplicaciones clásico:
gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE \ --load-balancing-scheme=EXTERNAL \ --global
- PATH_TO_URL_MAP_CONFIG_FILE: reemplaza con una ruta de acceso al archivo que contiene la configuración del mapa de URL para la validación.
Valida los cambios en el mapa de URL del balanceador de cargas existente
Si tienes un balanceador de cargas que necesita cambios en el mapa de URL, puedes probar esos cambios de configuración antes de publicarlos.
Exporta el mapa de URL existente del balanceador de cargas a un archivo YAML.
gcloud compute url-maps export URL_MAP_NAME \ --destination PATH_TO_URL_MAP_CONFIG_FILE \ --global
Edita el archivo YAML con una configuración nueva. Por ejemplo, si deseas editar un balanceador de cargas de aplicaciones externo y enviar todas las solicitudes con la ruta de acceso
/video
a un nuevo servicio de backend llamadovideo-backend-service
, puedes agregar pruebas a la configuración del mapa de URL de la siguiente manera:Configuración de asignación de URL existente con un único
web-backend-service
predeterminado:kind: compute#urlMap name: URL_MAP_NAME defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service
Se editó la configuración del mapa de URL con el comparador de rutas de acceso agregado y las pruebas para el
web-backend-service
predeterminado y el servicio de backendvideo-backend-service
nuevo:kind: compute#urlMap name: URL_MAP_NAME defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service hostRules: - hosts: - '*' pathMatcher: pathmap pathMatchers: - defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service name: pathmap pathRules: - paths: - /video - /video/* service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/video-backend-service tests: - description: Test routing to existing web service host: foobar path: / service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service - description: Test routing to new video service host: foobar path: /video service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/video-backend-service
Valida la configuración nueva.
gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE
Si todas las pruebas se pasan correctamente, debería ver un mensaje de confirmación como el siguiente:
Successfully validated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_CONFIG_FILE_NAME]
Si las pruebas fallan, aparecerá un mensaje de error. Realiza las correcciones necesarias en el archivo de configuración del mapa de URL y, luego, intenta realizar la validación de nuevo.
Error: Invalid value for field 'urlMap.tests': ''. Test failure: Expect URL 'HOST/PATH' to map to service 'EXPECTED_BACKEND_SERVICE', but actually mapped to 'ACTUAL_BACKEND_SERVICE'.
Una vez que sepas que la configuración nueva funciona y no afecta la configuración existente, puedes importarla al mapa de URL. Ten en cuenta que con este paso también se implementa el mapa de URL con la configuración nueva.
gcloud compute url-maps import URL_MAP_NAME \ --source PATH_TO_URL_MAP_CONFIG_FILE \ --global
Agrega pruebas a un mapa de URL
Puedes agregar pruebas de configuración a un mapa de URL para asegurarte de que enrute las solicitudes a los servicios de backend o a los depósitos de backend de manera adecuada.
En esta sección, se describe cómo agregar pruebas a un mapa de URL que ya se implementó. Si quieres probar nuevos cambios en un mapa de URL sin implementar el mapa, consulta Valida la configuración del mapa de URL.
Cuando editas el mapa de URL, las pruebas se ejecutan y, si una prueba falla, aparecerá un mensaje de error.
Error: Invalid value for field 'urlMap.tests': ''. Test failure: Expect URL 'HOST/PATH' to map to service 'EXPECTED_BACKEND_SERVICE', but actually mapped to 'ACTUAL_BACKEND_SERVICE'.
Agregar pruebas a los mapas de URL es opcional.
Console
Para ejecutar pruebas desde la consola de Google Cloud, sigue estos pasos:
- Ve a la página Balanceo de cargas.
- Haz clic en el Nombre de un balanceador de cargas.
- En la página Detalles del balanceador de cargas, haz clic en Editar para el balanceador de cargas seleccionado.
- Haz clic en Reglas de enrutamiento. Para un balanceador de cargas de aplicaciones clásico, estas son las Reglas de host y ruta de acceso.
- Haz clic en Mostrar pruebas de configuración.
- Haz clic en Add configuration test y, luego, ingresa los siguientes backends y URL de prueba:
- Host y ruta de prueba 1
example.com
y Backendwww-service.
- Host y ruta de prueba 2
example.net
y Backendwww-service.
- Host y ruta de prueba 3
example.net/web
y Backendwww-service.
- Host y ruta de prueba 4
example.com/videos
y Backendvideo-service.
- Host y ruta de prueba 5
example.com/videos/browse
y Backendvideo-service.
- Host y ruta de prueba 6
example.net/static
y Backendstatic-service.
- Host y ruta de prueba 7
example.net/static/images
y Backendstatic-service.
- Host y ruta de prueba 1
- Busca la marca de verificación azul que se encuentra a la izquierda de Reglas de enrutamiento y haz clic en el botón Actualizar. Para un balanceador de cargas de aplicaciones clásico, busca la marca de verificación azul junto a Reglas de host y ruta.
gcloud
Para agregar pruebas al mapa de URL mediante Google Cloud CLI, usa el comando gcloud compute url-maps edit
:
gcloud compute url-maps edit URL_MAP_NAME
Con esto se abrirá un editor de texto. Para los balanceadores de cargas de aplicaciones externos, tus pruebas deben usar el siguiente formato:
tests: - host: example.com service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service - host: example.net service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service - host: example.com path: /videos service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/video-service - host: example.com path: /videos/browse service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/video-service - host: example.net path: /web service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service - host: example.net path: /static service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/static-service - host: example.net path: /static/images service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/static-service
Si no especificas un host en una regla, las URL de todos los hosts (tanto example.com como example.net) pueden coincidir. En cambio, si tienes reglas de host, debes crear reglas que coincidan tanto con example.com como con example.net.
Mostrar lista de mapas de URL
Console
No puedes enumerar todos tus mapas de URL en la consola de Google Cloud.
gcloud
Para mostrar una lista de los mapas de URL mediante Google Cloud CLI, usa el comando url-maps list
.
gcloud compute url-maps list
Obtén información sobre un mapa de URL
Console
Para obtener información sobre un mapa de URL, sigue estos pasos:
- Ve a la página Balanceo de cargas.
- Haz clic en el Nombre de un balanceador de cargas.
- En la página Detalles del balanceador de cargas, haz clic en Editar para el balanceador de cargas seleccionado.
- Mira las Reglas de host y ruta.
gcloud
Para obtener información sobre un solo mapa de URL mediante Google Cloud CLI, usa el comando url-maps describe
.
gcloud compute url-maps describe URL_MAP_NAME
Borrar un mapa de URL
Solo puedes borrar un mapa de URL una vez que hayas borrado todos los proxies de destino que hacen referencia a él. Para obtener más información, consulta Borra un proxy de destino.
Console
Para borrar un mapa de URL, sigue estos pasos:
- Ve a la página Balanceo de cargas.
- Haz clic en el Nombre de un balanceador de cargas.
- En la página Detalles del balanceador de cargas, haz clic en Editar para el balanceador de cargas seleccionado.
- En la página Detalles del balanceador de cargas, ve a las Reglas de host y ruta.
- Haz clic en la "X" que aparece a la derecha de un mapa de URL para borrarlo. El mapa de URL desaparecerá.
- Revisa que aparezca una marca de verificación azul a la izquierda de Reglas de host y ruta y haz clic en el botón Actualizar.
gcloud
Para borrar un mapa de URL mediante Google Cloud CLI, usa el comando url-maps delete
.
Para que puedas borrar un mapa de URL, primero debes borrar cualquier proxy HTTP de destino que haga referencia a ese mapa.
gcloud compute url-maps delete URL_MAP_NAME [--quiet]
Borra un comparador de rutas
Console
Para borrar un comparador de rutas de acceso, sigue estos pasos:
- Ve a la página Balanceo de cargas.
- Haz clic en el Nombre de un balanceador de cargas.
- En la página Detalles del balanceador de cargas, haz clic en Editar para el balanceador de cargas seleccionado.
- Selecciona Reglas de host y ruta.
- En el campo Rutas de acceso de un mapa de URL existente, haz clic en la “x” que aparece en el nombre del comparador de rutas.
- Revisa que aparezca una marca de verificación azul a la izquierda de Reglas de host y ruta y haz clic en el botón Actualizar.
gcloud
Para borrar un comparador de rutas, usa el comando gcloud compute url-maps remove-path-matcher
:
gcloud compute url-maps remove-path-matcher URL_MAP_NAME \ [--path-matcher-name PATH_MATCHER]
Borra una regla de host
Console
Para borrar una regla de host, sigue estos pasos:
- Si no estás en la página Reglas de host y ruta, ve a la página Balanceo de cargas.
- Haz clic en el Nombre de un balanceador de cargas.
- En la página Detalles del balanceador de cargas, haz clic en Editar para el balanceador de cargas seleccionado.
- Selecciona Reglas de host y ruta.
- En el campo Hosts de un mapa de URL existente, haz clic en la “x” que aparece en el nombre del host.
- Revisa que aparezca una marca de verificación azul a la izquierda de Reglas de host y ruta y haz clic en el botón Actualizar.
gcloud
Para borrar una regla de host del mapa de URL, usa el comando gcloud compute url-maps remove-host-rule
:
gcloud compute url-maps remove-host-rule URL_MAP_NAME --host=HOST
Por ejemplo, si deseas quitar una regla de host que contiene el host altostrat.com
de un mapa de URL llamado my-map
, debes ejecutar el siguiente comando:
gcloud compute url-maps remove-host-rule my-map --host altostrat.com
Guías de administración de tráfico
No todas las funciones de mapas de URL están disponibles para todos los productos. Los mapas de URL se usan con balanceadores de cargas para admitir varias funciones avanzadas de administración del tráfico, pero no todas son compatibles con el balanceador de cargas de aplicaciones clásico.
Usa la siguiente tabla a fin de obtener información sobre las características de asignación de URL para la administración.
Referencia de gcloud CLI y API
Además de la consola de Google Cloud, puedes usar la API y gcloud CLI para crear mapas de URL.
API
Para obtener descripciones de las propiedades y los métodos disponibles cuando trabajas con mapas de URL a través de la API de REST, consulta lo siguiente:
Producto | Documentación de la API |
---|---|
Balanceador de cargas de aplicaciones externo | urlMaps |
Balanceador de cargas de aplicaciones interno | regionUrlMaps |
Cloud Service Mesh | urlMaps |
gcloud CLI
Para Google Cloud CLI en la CLI de Google Cloud, consulta lo siguiente:
- Global:
--global
- Regional:
--region=[REGION]
Para la administración avanzada del tráfico, usa los archivos YAML y, luego, impórtalos con el comando gcloud compute url-maps import
.
¿Qué sigue?
- Consulta la descripción general de los mapas de URL para obtener información sobre cómo funcionan los mapas de URL.
- Consulta la descripción general del balanceador de cargas de aplicaciones externo para obtener información sobre cómo funcionan los mapas de URL en los balanceadores de cargas de aplicaciones externos.
- Consulta la descripción general del balanceador de cargas de aplicaciones interno para obtener información sobre cómo funcionan los mapas de URL en los balanceadores de cargas de aplicaciones internos.