En esta guía se explica cómo configurar mapas de URLs. Google CloudUn mapa de URLs es un conjunto de reglas para enrutar las solicitudes HTTP(S) entrantes a servicios de backend o segmentos de backendespecíficos.
Un mapa de URLs mínimo coincide con todas las rutas de solicitudes entrantes (/*
).
Antes de seguir esta guía, familiarízate con los conceptos de mapa de URLs.
Los mapas de URLs se usan con los siguientes Google Cloud productos:
- Balanceador de carga de aplicación externo (modosglobal, clásico y regional)
- Balanceador de carga de aplicación interno
Los mapas de URLs que se usan con balanceadores de carga de aplicación externos globales, balanceadores de carga de aplicación externos regionales, balanceadores de carga de aplicación internos y Cloud Service Mesh también admiten varias funciones avanzadas de gestión del tráfico. Para obtener más información, consulta Conceptos de mapa de URLs: gestión avanzada del tráfico.
Valores predeterminados de los mapas de URLs
Los mapas de URLs tienen dos valores predeterminados, tal como se describe en la siguiente tabla.
Tipo predeterminado | Ajuste | Significado |
---|---|---|
Predeterminado del mapa de URLs | gcloud compute url-maps create
|
El servicio de backend predeterminado o el segmento de backend especificados se utilizan si ninguno de los matchers de ruta o las reglas de host coincide con la URL entrante. |
Valor predeterminado del comparador de rutas | gcloud compute url-maps add-path-matcher
|
El servicio de backend predeterminado o el segmento de backend especificados se utilizan si la ruta de la URL coincide con un comparador de rutas, pero no coincide con ninguno de los --path-rules especificados. |
Reglas de host
Una regla de host define un conjunto de hosts con los que se comparan las solicitudes.
En una regla de host, el nombre de host debe ser un nombre de dominio completo (FQDN). El nombre de host no puede ser una dirección IPv4 o IPv6. Por ejemplo:
- Obras:
example.com
- Obras:
web.example.com
- Obras:
*.example.com
- No funciona:
35.244.221.250
Configurar mapas de URLs
Un mapa de URLs puede enviar tráfico a servicios de backend o segmentos de backend. Los segmentos de backend no se admiten en los balanceadores de carga de aplicaciones externos regionales ni en los balanceadores de carga de aplicaciones internos.
Consola
Para añadir un mapa de URLs mediante la consola Google Cloud , sigue estos pasos:
- Ve a la página Balanceo de carga.
- Haz clic en el Nombre de un balanceador de carga.
- En la página Detalles del balanceador de carga, haga clic en Editar del balanceador de carga seleccionado.
- Selecciona Reglas de host y ruta.
- Haz clic en Añadir regla de host y ruta.
Rellena el campo Host, el campo Paths o ambos, y selecciona un servicio de backend o un cubo de backend.
- Introduce un Nombre de host completo. Por ejemplo:
web.example.com
. - Introduce la ruta. Por ejemplo,
/video
. - En la página Reglas de host y ruta, en el menú Backends (Backends), selecciona un servicio de backend o un backend de almacenamientodisponibles.
- Introduce un Nombre de host completo. Por ejemplo:
Busca la marca de verificación azul situada a la izquierda de Reglas de host y ruta y haz clic en el botón Actualizar.
gcloud
Para añadir un mapa de URLs con la CLI de Google Cloud, 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 carga de aplicación externos regionales y los balanceadores de carga de aplicación internos, asegúrate de incluir la marca --region
al crear el mapa de URLs.
Para crear un matcher de ruta, 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 predeterminado o un bucket de backend al que pueda enviar las solicitudes que no coincidan. La marca --path-rules
define las asignaciones entre las rutas de solicitud y los servicios de backend o los segmentos. En el siguiente ejemplo, se dirigen las rutas de solicitud /video/
y /video/*
al servicio 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 de --hosts
coincide con las solicitudes de 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 URLs, 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 URLs global, usa el recurso google_compute_url_map.
Para crear un mapa de URLs regional, usa el recurso google_compute_region_url_map.
Validar la configuración del mapa de URLs
Antes de implementar un mapa de URLs, valida su configuración para asegurarte de que las solicitudes se enrutan a los backends adecuados según lo previsto. Para ello, añade pruebas a la configuración del mapa de URLs. Puedes experimentar con diferentes reglas de asignación de URLs y realizar tantas pruebas como necesites para asegurarte de que la asignación dirigirá el tráfico correctamente cuando se implemente. Además, si necesitas cambiar alguna regla en el futuro, puedes probar esos cambios antes de aplicar la nueva configuración.
Usa el comando gcloud compute url-maps
validate
para validar la configuración del mapa de URLs. Este comando solo prueba la configuración proporcionada.
Independientemente de si las pruebas se superan o no, no se guardan cambios en el mapa de URLs implementado. Este comportamiento es diferente al de otros comandos de mapa de URLs (edit
y import
), que también ejecutan las mismas pruebas, pero guardan la nueva configuración si las pruebas se superan. Si quieres probar una nueva configuración de enrutamiento sin modificar el mapa de URLs 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 consulta, las redirecciones de HTTP a HTTPS y la reescritura de URLs.
Consola
No puedes usar la Google Cloud consola para validar la configuración del mapa de URLs.
Usa gcloud
o la API REST en su lugar.
gcloud
Para validar la configuración del mapa de URLs, usa el comando
gcloud compute url-maps validate
.
En el caso del balanceador de carga de aplicación externo global:
gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE \ --load-balancing-scheme=EXTERNAL_MANAGED \ --global
En el caso del balanceador de carga de aplicación 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: sustitúyelo por la ruta al archivo que contiene la configuración del mapa de URLs para la validación.
Validar los cambios en el mapa de URLs de un balanceador de carga
Si tienes un balanceador de carga que necesita cambios en el mapa de URLs, puedes probar esos cambios de configuración antes de aplicarlos.
Exporta el mapa de URLs del balanceador de carga 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 la nueva configuración. Por ejemplo, si quieres editar un balanceador de carga de aplicaciones externo y enviar todas las solicitudes con la ruta
/video
a un nuevo servicio de backend llamadovideo-backend-service
, puedes añadir pruebas a la configuración del mapa de URLs de la siguiente manera:Configuración de mapa de URLs con un solo
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
Configuración de mapa de URLs editada con un matcher de ruta añadido y pruebas para el servicio de backend predeterminado
web-backend-service
y el nuevovideo-backend-service
: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 nueva configuración.
gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE
Si todas las pruebas se superan correctamente, debería aparecer un mensaje 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, aparece un mensaje de error. Haz las correcciones necesarias en el archivo de configuración del mapa de URLs y vuelve a validarlo.
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 nueva configuración funciona y no afecta a la configuración actual, puedes importarla al mapa de URLs. Ten en cuenta que este paso también implementa el mapa de URLs con la nueva configuración.
gcloud compute url-maps import URL_MAP_NAME \ --source PATH_TO_URL_MAP_CONFIG_FILE \ --global
Añadir pruebas a un mapa de URLs
Puedes añadir pruebas de configuración a un mapa de URLs para asegurarte de que este enruta las solicitudes a los servicios de backend o los backend buckets según lo previsto.
En esta sección se describe cómo añadir pruebas a un mapa de URLs que ya se ha implementado. Si quieres probar los nuevos cambios en un mapa de URLs sin desplegarlo, consulta Validar la configuración de un mapa de URLs.
Cuando editas tu mapa de URLs, se ejecutan las pruebas y aparece un mensaje de error si falla alguna:
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'.
Añadir pruebas a los mapas de URLs es opcional.
Consola
Para ejecutar pruebas desde la consola Google Cloud :
- Ve a la página Balanceo de carga.
- Haz clic en el Nombre de un balanceador de carga.
- En la página Detalles del balanceador de carga, haz clic en Editar del balanceador de carga seleccionado.
- Haz clic en Reglas de enrutamiento. En el caso de un balanceador de carga de aplicación clásico, se trata de reglas de host y de ruta.
- Haz clic en Mostrar pruebas de configuración.
- Haz clic en Añadir prueba de configuración. Añade las siguientes URLs de prueba y back-ends:
- 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 situada a la izquierda de Reglas de enrutamiento y haz clic en el botón Actualizar. En el caso de un balanceador de carga de aplicación clásico, busca la marca de verificación azul situada junto a Reglas de host y de ruta.
gcloud
Para añadir pruebas a tu mapa de URLs mediante la CLI de Google Cloud, usa el comando
gcloud compute url-maps edit
:
gcloud compute url-maps edit URL_MAP_NAME
Se abrirá un editor de texto. En el caso de los balanceadores de carga de aplicación externos, las 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
Ten en cuenta que, si no especificas un host en una regla de host, las URLs de todos los hosts (tanto example.com como example.net) pueden coincidir. Si tienes reglas de host, debes crear reglas que coincidan con example.com y example.net.
Mostrar lista de mapas de URLs
Consola
No puedes consultar todas tus asignaciones de URLs en la consola. Google Cloud
gcloud
Para mostrar una lista de mapas de URLs con la CLI de Google Cloud, usa el comando url-maps list
.
gcloud compute url-maps list
Obtener información sobre un mapa de URLs
Consola
Para obtener información sobre un mapa de URLs, sigue estos pasos:
- Ve a la página Balanceo de carga.
- Haz clic en el Nombre de un balanceador de carga.
- En la página Detalles del balanceador de carga, haz clic en Editar del balanceador de carga seleccionado.
- Consulta las reglas de host y ruta.
gcloud
Para obtener información sobre un solo mapa de URLs mediante la CLI de Google Cloud, usa el comando url-maps describe
.
gcloud compute url-maps describe URL_MAP_NAME
Eliminar un mapa de URL
Solo puedes eliminar un mapa de URLs después de haber eliminado todos los proxies de destino que lo referencian. Para obtener más información, consulta Eliminar un proxy de destino.
Consola
Para eliminar un mapa de URLs, sigue estos pasos:
- Ve a la página Balanceo de carga.
- Haz clic en el Nombre de un balanceador de carga.
- En la página Detalles del balanceador de carga, haz clic en Editar del balanceador de carga seleccionado.
- En la página Detalles del balanceador de carga, consulta las reglas de host y ruta.
- Haz clic en la "X" situada a la derecha de un mapa de URLs para eliminarlo. El mapa de URLs desaparece.
- Busca la marca de verificación azul situada a la izquierda de Reglas de host y ruta y haz clic en el botón Actualizar.
gcloud
Para eliminar un mapa de URLs con la CLI de Google Cloud, usa el comando url-maps delete
.
Para poder eliminar un mapa de URLs, primero debe eliminar todos los proxies HTTP de destino que hagan referencia a él.
gcloud compute url-maps delete URL_MAP_NAME [--quiet]
Eliminar un comparador de rutas
Consola
Para eliminar un comparador de rutas, sigue estos pasos:
- Ve a la página Balanceo de carga.
- Haz clic en el Nombre de un balanceador de carga.
- En la página Detalles del balanceador de carga, haz clic en Editar del balanceador de carga seleccionado.
- Selecciona Reglas de host y ruta.
- En el campo Rutas de un mapa de URLs, haga clic en la "x" del nombre del comparador de rutas.
- Busca la marca de verificación azul situada a la izquierda de Reglas de host y ruta y haz clic en el botón Actualizar.
gcloud
Para eliminar un matcher de ruta, 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]
Eliminar una regla de host
Consola
Para eliminar una regla de host, sigue estos pasos:
- Si aún no estás en la página Reglas de host y ruta, ve a la página Balanceo de carga.
- Haz clic en el Nombre de un balanceador de carga.
- En la página Detalles del balanceador de carga, haz clic en Editar del balanceador de carga seleccionado.
- Selecciona Reglas de host y ruta.
- En el campo Hosts (Hosts) de una asignación de URL, haga clic en la "x" del nombre del host.
- Busca la marca de verificación azul situada a la izquierda de Reglas de host y ruta y haz clic en el botón Actualizar.
gcloud
Para eliminar una regla de host de tu mapa de URLs, usa el comando
gcloud compute url-maps remove-host-rule
:
gcloud compute url-maps remove-host-rule URL_MAP_NAME --host=HOST
Por ejemplo, para eliminar una regla de host que contenga el host altostrat.com
de un mapa de URLs llamado my-map
, ejecutaría el siguiente comando:
gcloud compute url-maps remove-host-rule my-map --host altostrat.com
Guías de gestión del tráfico
No todas las funciones de los mapas de URLs están disponibles para todos los productos. Los mapas de URLs se usan con balanceadores de carga para admitir varias funciones avanzadas de gestión del tráfico, pero no todas son compatibles con el balanceador de carga de aplicaciones clásico.
Consulta la siguiente tabla para obtener información sobre las funciones de los mapas de URLs para las tareas de gestión.
Referencia de la API y de la CLI de gcloud
Además de la Google Cloud consola, puedes usar la API y la CLI de gcloud para crear mapas de URLs.
API
Para ver las descripciones de las propiedades y los métodos que tienes a tu disposición cuando trabajas con mapas de URLs a través de la API REST, consulta lo siguiente:
Producto | Documentación de la API |
---|---|
Balanceador de carga de aplicación externo | urlMaps |
Balanceador de carga de aplicación interno | regionUrlMaps |
Cloud Service Mesh | urlMaps |
CLI de gcloud
Para obtener información sobre Google Cloud CLI en Google Cloud CLI, consulta lo siguiente:
- Global:
--global
- Regional:
--region=[REGION]
Para gestionar el tráfico de forma avanzada, usa archivos YAML e impórtalos con el comando
gcloud compute url-maps import
.
Siguientes pasos
- Consulta la descripción general de los mapas de URLs para obtener información sobre cómo funcionan.
- Consulta la descripción general de los balanceadores de carga de aplicación externos para obtener información sobre cómo funcionan los mapas de URLs en los balanceadores de carga de aplicación externos.
- Consulta la descripción general de los balanceadores de carga de aplicación internos para obtener información sobre cómo funcionan los mapas de URLs en los balanceadores de carga de aplicación internos.