Usa mapas de URL

En esta guía, se explica cómo configurar los mapas de URL de Google Cloud. 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:

El balanceo de cargas de HTTP(S) interno y Traffic Director admiten casos prácticos de administración avanzada del tráfico. Para obtener más información, consulta los siguientes vínculos:

Configura mapas de URL

Puedes agregar servicios de backend y depósitos de backend a un mapa de URL.

Los depósitos de backend solo son compatibles con balanceadores de cargas de HTTP(S) externos.

.

Agrega un mapa de URL

Console

Para agregar un mapa de URL mediante Cloud Console, sigue estos pasos:

  1. Ve a la página Balanceo de cargas.

    Ir a la página Balanceo de cargas

  2. Haz clic en el Nombre de un balanceador de cargas.
  3. En la pantalla Detalles del balanceador de cargas, haz clic en Editar para el balanceador de cargas seleccionado.
  4. Selecciona Reglas de host y ruta.
  5. Haz clic en Agregar regla de host y ruta de acceso.
  6. Completa el campo Host, el campo Rutas de acceso o ambos, y selecciona un servicio de backend o depósito de backend.
  7. 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 la herramienta de línea de comandos de gcloud, 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 HTTP(S) internos, asegúrate de incluir la marca --region cuando crees el mapa de URL.

Un mapa de URL que se acaba de crear solo coincide con una ruta de acceso, la predeterminada (/*). Este comparador de rutas predeterminado se crea de forma automática. Todo el tráfico que no coincida con una regla de host ni un comparador de rutas creado de forma manual se envía al servicio de backend predeterminado del mapa de URL.

Agrega un comparador de rutas

Un comparador de rutas mapea las rutas de las solicitudes HTTP(S) o los prefijos de ruta (por ejemplo, /video) a servicios de backend. Todo el tráfico que coincide con la ruta especificada se procesa según las reglas del comparador de rutas. Si una ruta coincide con una regla, la solicitud se reenvía a los backends asociados con ella. Si una solicitud coincide con las reglas no path del comparador de rutas, la solicitud se reenvía al backend predeterminado de ese comparador.

Console

Para crear un comparador de rutas mediante Cloud Console, sigue estos pasos:

  1. Si no estás en la pantalla Reglas de host y ruta, ve a la página Balanceo de cargas.

    Ir a la página Balanceo de cargas

  2. Haz clic en el Nombre de un balanceador de cargas.
  3. En la pantalla Detalles del balanceador de cargas, haz clic en Editar para el balanceador de cargas seleccionado.
  4. En la pantalla Reglas de host y ruta, haz clic en Agrega la regla de host y de ruta o haz clic en un campo Rutas existente.
  5. Ingresa la ruta de acceso que deseas configurar; por ejemplo, /video.
  6. 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 crear un comparador de rutas mediante la herramienta de línea de comandos de gcloud, usa el comando gcloud compute url-maps add-path-matcher:

gcloud compute url-maps add-path-matcher URL_MAP_NAME \
   --default-service BACKEND_SERVICE \
   --path-matcher-name PATH_MATCHER \
   [--path-rules="PATH=SERVICE"]

Este comando requiere un servicio de backend predeterminado al que se envíen las solicitudes que no coinciden. Puedes usar la marca --path-rules para definir mapeos entre rutas de solicitud y servicios 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"

Los comandos url-maps create y url-maps add-path-matcher tienen un parámetro --default-service. En create, el servicio predeterminado es el que se usa si ninguno de los comparadores de rutas coincide con la URL entrante. En add-path-matcher, el servicio predeterminado es el que se usa si la ruta de acceso coincide con el comparador de rutas, pero ninguna de las --path-rules coinciden.

Agrega una regla de host

Console

Para crear una regla de host mediante Cloud Console, sigue estos pasos:

  1. Si no estás en la pantalla Reglas de host y ruta, ve a la página Balanceo de cargas.

    Ir a la página Balanceo de cargas

  2. Haz clic en el Nombre de un balanceador de cargas.
  3. En la pantalla Detalles del balanceador de cargas, haz clic en Editar para el balanceador de cargas seleccionado.
  4. En la pantalla Reglas de host y ruta, haz clic en Agrega la regla de host y de ruta o haz clic en un campo Hosts existente.
  5. Ingresa un Nombre de host completamente calificado, como web.example.com.
  6. 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 crear una regla de host mediante la herramienta de línea de comandos de gcloud, 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

La marca --hosts define un conjunto de hosts con los que se deben hacer coincidir las solicitudes. Por ejemplo, el siguiente valor --hosts haría coincidir las solicitudes con www.example.com y cualquier subdominio de google.com:

--hosts *.google.com,www.example.com

Selecciona un servicio o un depósito de backend

Console

Si deseas seleccionar un servicio o un depósito de backend para un mapa de URL, sigue estos pasos:

  1. Si no estás en la pantalla Reglas de host y ruta, ve a la página Balanceo de cargas.

    Ir a la página Balanceo de cargas

  2. Haz clic en el Nombre de un balanceador de cargas.
  3. En la pantalla Detalles del balanceador de cargas, haz clic en Editar para el balanceador de cargas seleccionado.
  4. En la pantalla Reglas de host y ruta, en el menú desplegable del campo Backends, selecciona un servicio o un depósito de backend que esté disponible.
  5. 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 seleccionar un servicio o un depósito de backend con la herramienta de línea de comandos de gcloud, 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 ...]

Prueba 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.

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 '' to map to service '', but actually mapped to ''.

Agregar pruebas a los mapas de URL es opcional.

Console

Para ejecutar pruebas desde Cloud Console, sigue estos pasos:

  1. Ve a la página Balanceo de cargas.

    Ir a la página Balanceo de cargas

  2. Haz clic en el Nombre de un balanceador de cargas.
  3. En la pantalla Detalles del balanceador de cargas, haz clic en Editar para el balanceador de cargas seleccionado.
  4. Haz clic en Reglas de host y ruta.
  5. Debajo de Reglas de host y ruta de acceso, haz clic en Mostrar pruebas de configuración.
  6. Haz clic en Add configuration test y, luego, ingresa los siguientes backends y URL de prueba:
    • URL de prueba example.com y Backend www-service.
    • URL de prueba example.net y Backend www-service.
    • URL de prueba example.net/web y Backend www-service.
    • URL de prueba example.com/videos y Backend video-service.
    • URL de prueba example.com/videos/browse y Backend video-service.
    • URL de prueba example.net/static y Backend static-service.
    • URL de prueba example.net/static/images y Backend static-service.
  7. 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 pruebas al mapa de URL mediante la herramienta de línea de comandos de gcloud, 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 HTTP(S) externos, las pruebas deben tener 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

Para los balanceadores de cargas de HTTP(S) internos, las URL del servicio deben apuntar a servicios de backend regionales. Por ejemplo:

https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices//www-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.

Muestra mapas de URL

Console

No puedes enumerar todos tus mapas de URL en Cloud Console.

gcloud

Para mostrar una lista de los mapas de URL mediante la herramienta de línea de comandos de gcloud, 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:

  1. Ve a la página Balanceo de cargas.

    Ir a la página Balanceo de cargas

  2. Haz clic en el Nombre de un balanceador de cargas.
  3. En la pantalla Detalles del balanceador de cargas, haz clic en Editar para el balanceador de cargas seleccionado.
  4. Mira las Reglas de host y ruta.

gcloud

Para obtener información sobre un solo mapa de URL mediante la herramienta de línea de comandos de gcloud, usa el comando url-maps describe.

gcloud compute url-maps describe URL_MAP_NAME

Borra 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:

  1. Ve a la página Balanceo de cargas.

    Ir a la página Balanceo de cargas

  2. Haz clic en el Nombre de un balanceador de cargas.
  3. En la pantalla Detalles del balanceador de cargas, haz clic en Editar para el balanceador de cargas seleccionado.
  4. En la pantalla Detalles del balanceador de cargas, ve a las Reglas de host y ruta.
  5. Haz clic en la "X" que aparece a la derecha de un mapa de URL para borrarlo. El mapa de URL desaparecerá.
  6. 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 la herramienta de línea de comandos de gcloud, 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:

  1. Ve a la página Balanceo de cargas.

    Ir a la página Balanceo de cargas

  2. Haz clic en el Nombre de un balanceador de cargas.
  3. En la pantalla Detalles del balanceador de cargas, haz clic en Editar para el balanceador de cargas seleccionado.
  4. Selecciona Reglas de host y ruta.
  5. 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.
  6. 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:

  1. Si no estás en la pantalla Reglas de host y ruta, ve a la página Balanceo de cargas.

    Ir a la página Balanceo de cargas

  2. Haz clic en el Nombre de un balanceador de cargas.
  3. En la pantalla Detalles del balanceador de cargas, haz clic en Editar para el balanceador de cargas seleccionado.
  4. Selecciona Reglas de host y ruta.
  5. En el campo Hosts de un mapa de URL existente, haz clic en la “x” que aparece en el nombre del host.
  6. 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 google.com de un mapa de URL llamado my-map, debes ejecutar el siguiente comando:

gcloud compute url-maps remove-host-rule my-map --host google.com

¿Qué sigue?