Rutas de puertas de enlace - AWS App Mesh

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Rutas de puertas de enlace

importante

Aviso de fin de soporte: el 30 de septiembre de 2026, AWS suspenderemos el soporte para AWS App Mesh. Después del 30 de septiembre de 2026, ya no podrás acceder a la AWS App Mesh consola ni a AWS App Mesh los recursos. Para obtener más información, visita esta entrada de blog Migración desde AWS App Mesh a Amazon ECS Service Connect.

Una ruta de gateway se asocia a una gateway virtual y dirige el tráfico a un servicio virtual existente. Si una ruta coincide con una solicitud, puede distribuir tráfico a un servicio virtual de destino. Este tema lo ayuda a trabajar con rutas de puertas de enlace en una malla de servicios.

Creación de una ruta de puerta de enlace

AWS Management Console
Para crear una ruta de puerta de enlace mediante el AWS Management Console
  1. Abre la consola App Mesh en https://console.aws.amazon.com/appmesh/.

  2. Elija la malla en la que desea crear la ruta de puerta de enlace. Se muestran todas las mallas que son de su propiedad y que se han compartido con usted.

  3. Elija Puertas de enlace virtuales en el panel de navegación izquierdo.

  4. Elija la puerta de enlace virtual a la que desee asociar una nueva ruta de puerta de enlace. Si no hay ninguna en la lista, deberá crear una puerta de enlace virtual primero. Solo puede crear una ruta de puerta de enlace para una puerta de enlace virtual cuya cuenta figure como propietaria del recurso.

  5. En la tabla Rutas de puerta de enlace, elija Crear una ruta de puerta de enlace.

  6. En Nombre de ruta de puerta de enlace, especifique el nombre que se va a utilizar para la ruta de puerta de enlace.

  7. En Tipo de ruta de puerta de enlace, elija http, http2 o grpc.

  8. Seleccione un nombre de servicio virtual existente. Si no hay ninguno en la lista, debe crear un servicio virtual primero.

  9. Elija el puerto que corresponda al destino del Puerto del proveedor de servicios virtuales. El puerto del proveedor de servicios virtuales es obligatorio cuando el proveedor (enrutador o nodo) del servicio virtual seleccionado tiene varios oyentes.

  10. (Opcional) En Prioridad, especifique la prioridad de esta ruta de puerta de enlace.

  11. En Configuración de coincidencia, especifique:

    • Si el tipo seleccionado es http/http2:

      • (Opcional) Método: especifica el encabezado del método que debe coincidir en las solicitudes http/http2 entrantes.

      • (Opcional) Coincidencia de puerto: hace coincidir el puerto del tráfico entrante. La coincidencia de puerto es necesaria si esta puerta de enlace virtual tiene varios oyentes.

      • (Opcional) Nombre de host exacto/de sufijo: especifica el nombre de host que debe coincidir en la solicitud entrante para enrutar al servicio virtual de destino.

      • (Opcional) Ruta de prefijo/exacta/de expresiones regulares ‐ El método para hacer coincidir la ruta del. URL

        • Coincidencia de prefijo: una solicitud coincidente de una ruta de puerta de enlace se reescribe con el nombre del servicio virtual de destino y, de forma predeterminada, el prefijo coincidente se reescribe como /. Según cómo configure el servicio virtual, podría utilizar un enrutador virtual para enrutar la solicitud a nodos virtuales diferentes, en función de prefijos o encabezados específicos.

          importante
          • No puede especificar /aws-appmesh* ni /aws-app-mesh* para la Coincidencia de prefijo. Estos prefijos están reservados para el uso interno de App Mesh en el futuro.

          • Si se definen varias rutas de puerta de enlace, una solicitud coincide con la ruta con el prefijo más largo. Por ejemplo, si existieran dos rutas de puerta de enlace, una con el prefijo de /chapter y la otra con el prefijo de /, la solicitud de www.example.com/chapter/ coincidiría con la ruta de la puerta de enlace con el prefijo /chapter.

          nota

          Si habilita la coincidencia basada en ruta/prefijo, App Mesh habilita la normalización de rutas (normalize_path y merge_slashes) para reducir la probabilidad de que se produzcan vulnerabilidades de confusión de rutas.

          Las vulnerabilidades de confusión de rutas se producen cuando las partes que participan en la solicitud utilizan diferentes representaciones de rutas.

        • Coincidencia exacta ‐ El parámetro exacto desactiva la coincidencia parcial de una ruta y garantiza que solo devuelva la ruta si la ruta coincide con la actual. EXACTURL

        • Concordancia de expresiones regulares: se usa para describir patrones en los URLs que múltiples pueden identificar una sola página del sitio web.

      • (Opcional) Parámetros de consulta: este campo le permite hacer coincidir los parámetros de la consulta.

      • (Opcional) Encabezados: especifica los encabezados de http y http2. Debe coincidir con la solicitud entrante para enrutarse al servicio virtual de destino.

    • Si grpc es el tipo seleccionado:

      • El Tipo de coincidencia de nombre de alojamiento y la Coincidencia exacta/de sufijo(opcional): especifica el nombre de host que debe coincidir en la solicitud entrante para enrutarla al servicio virtual de destino.

      • nombre del servicio grpc ‐ El servicio grpc actúa como un API para su aplicación y se define con. ProtoBuf

        importante

        No puede especificar /aws.app-mesh* ni aws.appmesh para el Nombre del servicio. Estos nombres de servicio están reservados para el uso interno de App Mesh en el futuro.

      • (Opcional) Metadatos: especifica los metadatos de grpc. Debe coincidir con la solicitud entrante para enrutarse al servicio virtual de destino.

  12. (Opcional) Para la configuración de Reescribir:

    • Si el tipo seleccionado es http/http2:

      • Si Prefijo es el tipo de coincidencia seleccionado:

        • Anulación de la reescritura automática del nombre de alojamiento: de forma predeterminada, el nombre de host se reescribe con el nombre del servicio virtual de destino.

        • Anulación de la reescritura automática del prefijo: cuando está activada, Reescritura de prefijos especifica el valor del prefijo reescrito.

      • Si Coincidencia exacta es el tipo de coincidencia seleccionado:

        • Anulación de la reescritura automática del nombre de alojamiento: de forma predeterminada, el nombre de host se reescribe con el nombre del servicio virtual de destino.

        • Reescritura de la ruta: especifica el valor de la ruta reescrita. No hay una ruta predeterminada.

      • Si Coincidencia de ruta regex es el tipo de coincidencia seleccionado:

        • Anulación de la reescritura automática del nombre de alojamiento: de forma predeterminada, el nombre de host se reescribe con el nombre del servicio virtual de destino.

        • Reescritura de la ruta: especifica el valor de la ruta reescrita. No hay una ruta predeterminada.

    • Si grpc es el tipo seleccionado:

      • Anulación de la reescritura automática del nombre de alojamiento: de forma predeterminada, el nombre de host se reescribe con el nombre del servicio virtual de destino.

  13. Elija Crear una ruta de puerta de enlace para finalizar.

AWS CLI

Para crear una ruta de puerta de enlace mediante la AWS CLI.

Cree una ruta de puerta de enlace mediante el siguiente comando e introduzca JSON (sustituya el red valores por los tuyos propios):

  1. aws appmesh create-virtual-gateway \ --mesh-name meshName \ --virtual-gateway-name virtualGatewayName \ --gateway-route-name gatewayRouteName \ --cli-input-json file://create-gateway-route.json
  2. Contenido del ejemplo create-gateway-route .json:

    { "spec": { "httpRoute" : { "match" : { "prefix" : "/" }, "action" : { "target" : { "virtualService": { "virtualServiceName": "serviceA.svc.cluster.local" } } } } } }
  3. Ejemplo de salida:

    { "gatewayRoute": { "gatewayRouteName": "gatewayRouteName", "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualGateway/virtualGatewayName/gatewayRoute/gatewayRouteName", "createdAt": "2022-04-06T11:05:32.100000-05:00", "lastUpdatedAt": "2022-04-06T11:05:32.100000-05:00", "meshOwner": "123456789012", "resourceOwner": "210987654321", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "spec": { "httpRoute": { "action": { "target": { "virtualService": { "virtualServiceName": "serviceA.svc.cluster.local" } } }, "match": { "prefix": "/" } } }, "status": { "status": "ACTIVE" }, "virtualGatewayName": "gatewayName" } }

Para obtener más información sobre cómo crear una ruta de puerta de AWS CLI enlace con App Mesh, consulta el create-gateway-routecomando en la AWS CLI referencia.

Eliminación de una ruta de puerta de enlace

AWS Management Console
Para eliminar una ruta de puerta de enlace mediante el AWS Management Console
  1. Abre la consola App Mesh en https://console.aws.amazon.com/appmesh/.

  2. Elija la malla desde la que desea eliminar una ruta de puerta de enlace. Se muestran todas las mallas que son de su propiedad y que se han compartido con usted.

  3. Elija Puertas de enlace virtuales en el panel de navegación izquierdo.

  4. Elija la puerta de enlace virtual de la que desea eliminar una ruta de puerta de enlace.

  5. En la tabla Rutas de puerta de enlace, elija la ruta de puerta de enlace que desee eliminar y seleccione Eliminar. Solo puede eliminar una ruta de puerta de enlace si su cuenta aparece como Propietaria del recurso.

  6. En el cuadro de confirmación, escriba delete y, a continuación, haga clic en Eliminar.

AWS CLI
Para eliminar una ruta de puerta de enlace mediante el AWS CLI
  1. Utilice el siguiente comando para eliminar la ruta de la puerta de enlace (sustituya la red valores por los tuyos propios):

    aws appmesh delete-gateway-route \ --mesh-name meshName \ --virtual-gateway-name virtualGatewayName \ --gateway-route-name gatewayRouteName
  2. Ejemplo de salida:

    { "gatewayRoute": { "gatewayRouteName": "gatewayRouteName", "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualGateway/virtualGatewayName/gatewayRoute/gatewayRouteName", "createdAt": "2022-04-06T11:05:32.100000-05:00", "lastUpdatedAt": "2022-04-07T10:36:33.191000-05:00", "meshOwner": "123456789012", "resourceOwner": "210987654321", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 2 }, "spec": { "httpRoute": { "action": { "target": { "virtualService": { "virtualServiceName": "serviceA.svc.cluster.local" } } }, "match": { "prefix": "/" } } }, "status": { "status": "DELETED" }, "virtualGatewayName": "virtualGatewayName" } }

Para obtener más información sobre cómo eliminar una ruta de puerta de AWS CLI enlace con App Mesh, consulta el delete-gateway-routecomando en la AWS CLI referencia.