

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Passerelles virtuelles
<a name="virtual_gateways"></a>

**Important**  
Avis de fin de support : le 30 septembre 2026, AWS le support de. AWS App Mesh Après le 30 septembre 2026, vous ne pourrez plus accéder à la AWS App Mesh console ni aux AWS App Mesh ressources. Pour plus d'informations, consultez ce billet de blog [intitulé Migration from AWS App Mesh to Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect). 

Une passerelle virtuelle permet aux ressources situées en dehors de votre maillage de communiquer avec les ressources situées à l'intérieur de votre maillage. La passerelle virtuelle représente un proxy Envoy exécuté dans un service Amazon ECS, dans un service Kubernetes ou sur une instance Amazon. EC2 Contrairement à un nœud virtuel, qui représente Envoy exécuté avec une application, une passerelle virtuelle représente Envoy déployé seul. 

Les ressources externes doivent être en mesure de convertir un nom DNS en une adresse IP attribuée au service ou à l'instance qui exécute Envoy. Envoy peut ensuite accéder à toute la configuration de l'App Mesh pour les ressources qui se trouvent à l'intérieur du maillage. La configuration pour le traitement des demandes entrantes sur la passerelle virtuelle est spécifiée à l'aide de [Gateway Routes](https://docs.aws.amazon.com/app-mesh/latest/userguide/gateway-routes.html).

**Important**  
Une passerelle virtuelle dotée d'un protocole HTTP ou d'un HTTP2 écouteur réécrit le nom d'hôte de la demande entrante en nom du service virtuel cible de la route de passerelle, et le préfixe correspondant de l'itinéraire de passerelle est réécrit par défaut. `/` Par exemple, si vous avez configuré le préfixe de correspondance de la passerelle sur`/chapter`, et si la demande entrante l'est`/chapter/1`, la demande sera réécrite en. `/1` Pour configurer les réécritures, reportez-vous à la section [Création d'un itinéraire de passerelle](https://docs.aws.amazon.com/app-mesh/latest/userguide/gateway-routes.html#create-gateway-route) à partir de Gateway Routes.  
Lors de la création d'une passerelle virtuelle, `proxyConfiguration` elle ne `user` doit pas être configurée.

Pour effectuer une end-to-end procédure pas à pas, consultez [Configuration de la passerelle entrante](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-ingress-gateway).

## Création d'une passerelle virtuelle
<a name="create-virtual-gateway"></a>

**Note**  
Lorsque vous créez une passerelle virtuelle, vous devez ajouter un sélecteur d'espace de noms avec une étiquette pour identifier la liste des espaces de noms auxquels associer les routes de passerelle à la passerelle virtuelle créée.

------
#### [ AWS Management Console ]

**Pour créer une passerelle virtuelle à l'aide du AWS Management Console**

1. Ouvrez la console App Mesh à l'adresse [https://console.aws.amazon.com/appmesh/](https://console.aws.amazon.com/appmesh/). 

1. Choisissez le maillage dans lequel vous souhaitez créer la passerelle virtuelle. Tous les maillages que vous possédez et qui ont été [partagés](sharing.md) avec vous sont répertoriés.

1. Choisissez **Passerelles virtuelles dans** le menu de navigation de gauche.

1. Choisissez **Créer une passerelle virtuelle**.

1. Dans **Nom de la passerelle virtuelle**, entrez le nom de votre passerelle virtuelle.

1. (Facultatif, mais recommandé) Configurez les paramètres **par défaut de la politique du client**.

   1. (Facultatif) Sélectionnez **Appliquer le protocole TLS** si vous souhaitez que la passerelle communique uniquement avec les services virtuels à l'aide du protocole TLS (Transport Layer Security).

   1. (Facultatif) Pour **Ports**, spécifiez un ou plusieurs ports sur lesquels vous souhaitez appliquer la communication TLS avec les services virtuels.

   1. Pour **Méthode de validation**, sélectionnez l'une des options suivantes. Le certificat que vous spécifiez doit déjà exister et répondre à des exigences spécifiques. Pour de plus amples informations, veuillez consulter [Exigences du certificat](tls.md#virtual-node-tls-prerequisites).
      + **AWS Autorité de certification privée**hébergement : sélectionnez un ou plusieurs **certificats** existants.
      + Hébergement **Envoy Secret Discovery Service (SDS)** — Entrez le nom du secret qu'Envoy récupère à l'aide du Secret Discovery Service.
      + **Hébergement de fichiers local** — Spécifiez le chemin d'accès au fichier de **chaîne de certificats** sur le système de fichiers sur lequel Envoy est déployé.

   1. (Facultatif) Entrez un **autre nom de sujet**. Pour en ajouter d'autres SANs, sélectionnez **Ajouter un SAN**. SANs doit être au format FQDN ou URI.

   1. (Facultatif) Sélectionnez **Fournir un certificat client** et l'une des options ci-dessous pour fournir un certificat client lorsqu'un serveur le demande et activer l'authentification TLS mutuelle. Pour en savoir plus sur le protocole TLS mutuel, consultez la documentation relative à l'[authentification TLS mutuelle](https://docs.aws.amazon.com/app-mesh/latest/userguide/mutual-tls.html) App Mesh.
      + Hébergement **Envoy Secret Discovery Service (SDS)** — Entrez le nom du secret qu'Envoy récupère à l'aide du Secret Discovery Service.
      + **Hébergement de fichiers local** — Spécifiez le chemin d'accès au fichier de **chaîne de certificats**, ainsi que la **clé privée**, sur le système de fichiers sur lequel Envoy est déployé. Pour une description complète du déploiement d'un maillage avec un exemple d'application utilisant le chiffrement avec des fichiers locaux, voir [Configuration du protocole TLS avec des certificats TLS fournis par fichier activé](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-tls-file-provided). end-to-end GitHub

1. (Facultatif) Pour configurer la journalisation, sélectionnez **Journalisation**. Entrez le **chemin des journaux d'accès HTTP** que vous souhaitez qu'Envoy utilise. Nous vous recommandons ce `/dev/stdout` chemin afin que vous puissiez utiliser les pilotes de journal Docker pour exporter vos journaux Envoy vers un service tel qu'Amazon CloudWatch Logs.
**Note**  
Les journaux doivent toujours être ingérés par un agent dans votre application et envoyés à une destination. Ce chemin d'accès au fichier indique à Envoy où envoyer les journaux. 

1. Configurez le **récepteur.**

   1. Sélectionnez un **protocole** et spécifiez le **port** sur lequel Envoy écoute le trafic. L'écouteur **HTTP** permet la transition de connexion vers les websockets. Vous pouvez cliquer sur **Ajouter un écouteur** pour ajouter plusieurs écouteurs. Le bouton **Supprimer** supprimera cet écouteur.

   1. (Facultatif) **Activer le pool de connexions** 

      Le regroupement de connexions limite le nombre de connexions que Virtual Gateway Envoy peut établir simultanément. Il est conçu pour empêcher votre instance Envoy d'être submergée par les connexions et vous permet d'ajuster la configuration du trafic en fonction des besoins de vos applications.

      Vous pouvez configurer les paramètres du pool de connexions côté destination pour un écouteur de passerelle virtuelle. App Mesh définit les paramètres du pool de connexions côté client sur infini par défaut, ce qui simplifie la configuration du maillage.
**Note**  
Les protocoles `connectionPool` et `connectionPool` PortMapping doivent être identiques. Si votre protocole d'écoute est `grpc` ou`http2`, spécifiez `maxRequests` uniquement. Si votre protocole d'écoute l'est`http`, vous pouvez spécifier à la fois `maxConnections` et`maxPendingRequests`. 
      + Pour **Nombre maximal de connexions**, spécifiez le nombre maximal de connexions sortantes.
      + Pour **Maximum requests**, spécifiez le nombre maximum de requêtes parallèles pouvant être établies avec Virtual Gateway Envoy.
      + (Facultatif) Pour le nombre **maximal de demandes en attente**, spécifiez le nombre de demandes débordantes après le nombre **maximal de connexions** qu'un Envoy met en file d'attente. La valeur par défaut est `2147483647`.

   1. (Facultatif) Si vous souhaitez configurer un contrôle de santé pour votre écouteur, sélectionnez **Activer le contrôle de santé**.

      Une politique de bilan de santé est facultative, mais si vous spécifiez des valeurs pour une politique de santé, vous devez spécifier des valeurs pour le **seuil** de **santé, l'intervalle entre les contrôles de santé**, le **protocole de contrôle de santé**, le **délai** d'expiration et le **seuil d'anomalie**.
      + Pour le **protocole Health check**, choisissez un protocole. Si vous sélectionnez **grpc**, votre service doit être conforme au protocole [GRPC Health Checking](https://github.com/grpc/grpc/blob/master/doc/health-checking.md) Protocol.
      + Pour **Health check port (Port de vérification de l'état)**, spécifiez le port sur lequel la vérification de l'état doit s'exécuter.
      + Pour **Healthy threshold (Seuil de santé)**, spécifiez le nombre de réussites consécutives de vérification de l'état qui doivent se produire avant de déclarer l'écouteur sain.
      + Pour **Health check interval (Intervalle de vérification de l'état)**, spécifiez la période en millisecondes entre chaque exécution de vérification de l'état.
      + Pour **Path (Chemin)** : spécifiez le chemin de destination pour la demande de vérification de l'état. Cette valeur n'est utilisée que si le **protocole Health check** est `http` ou`http2`. La valeur est ignorée pour les autres protocoles.
      + Pour le **délai d'attente**, spécifiez le délai d'attente en millisecondes lors de la réception d'une réponse au bilan de santé.
      + Pour **Unhealthy threshold (Seuil non sain)**, spécifiez le nombre d'échecs consécutifs de vérification de l'état qui doivent se produire avant de déclarer l'écouteur non sain.

   1. (Facultatif) Si vous souhaitez spécifier si les clients communiquent avec cette passerelle virtuelle via TLS, sélectionnez **Activer la terminaison TLS**.
      + Pour **Mode**, sélectionnez le mode pour lequel vous souhaitez que TLS soit configuré sur l'écouteur.
      + Pour **Méthode de certificat**, sélectionnez l'une des options suivantes. Le certificat doit répondre à des exigences spécifiques. Pour de plus amples informations, veuillez consulter [Exigences du certificat](tls.md#virtual-node-tls-prerequisites).
        + **AWS Certificate Manager hébergement** — Sélectionnez un **certificat** existant.
        + Hébergement **Envoy Secret Discovery Service (SDS)** — Entrez le nom du secret qu'Envoy récupère à l'aide du Secret Discovery Service.
        + **Hébergement de fichiers local** — Spécifiez le chemin d'accès à la **chaîne de certificats** et aux fichiers de **clé privée** sur le système de fichiers sur lequel Envoy est déployé.
      + (Facultatif) Sélectionnez **Exiger un certificat client** et l'une des options ci-dessous pour activer l'authentification TLS mutuelle si le client fournit un certificat. Pour en savoir plus sur le protocole TLS mutuel, consultez la documentation relative à l'[authentification TLS mutuelle](https://docs.aws.amazon.com/app-mesh/latest/userguide/mutual-tls.html) App Mesh.
        + Hébergement **Envoy Secret Discovery Service (SDS)** — Entrez le nom du secret qu'Envoy récupère à l'aide du Secret Discovery Service.
        + **Hébergement de fichiers local** — Spécifiez le chemin d'accès au fichier de **chaîne de certificats** sur le système de fichiers sur lequel Envoy est déployé.
      + (Facultatif) Entrez un **autre nom de sujet**. Pour en ajouter d'autres SANs, sélectionnez **Ajouter un SAN**. SANs doit être au format FQDN ou URI.

1. Choisissez **Créer une passerelle virtuelle** pour terminer.

------
#### [ AWS CLI ]

**Pour créer une passerelle virtuelle à l'aide du AWS CLI.**

Créez une passerelle virtuelle à l'aide de la commande suivante et saisissez le code JSON (remplacez les *red* valeurs par les vôtres) :

1. 

   ```
   aws appmesh create-virtual-gateway \ 
   --mesh-name meshName \ 
   --virtual-gateway-name virtualGatewayName \ 
   --cli-input-json file://create-virtual-gateway.json
   ```

1. Contenu de l'**exemple** create-virtual-gateway .json :

   ```
   {
       "spec": {
         "listeners": [
           {
             "portMapping": {
               "port": 9080,
               "protocol": "http"
             }
           }
         ]
       }
   }
   ```

1. Exemple de sortie :

   ```
   {
       "virtualGateway": {
           "meshName": "meshName",
           "metadata": {
               "arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/meshName/virtualGateway/virtualGatewayName",
               "createdAt": "2022-04-06T10:42:42.015000-05:00",
               "lastUpdatedAt": "2022-04-06T10:42:42.015000-05:00",
               "meshOwner": "123456789012",
               "resourceOwner": "123456789012",
               "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
               "version": 1
           },
           "spec": {
               "listeners": [
                   {
                       "portMapping": {
                           "port": 9080,
                           "protocol": "http"
                       }
                   }
               ]
           },
           "status": {
               "status": "ACTIVE"
           },
           "virtualGatewayName": "virtualGatewayName"
       }
   }
   ```

Pour plus d'informations sur la création d'une passerelle virtuelle avec le AWS CLI for App Mesh, consultez la [create-virtual-gateway](https://docs.aws.amazon.com/cli/latest/reference/appmesh/create-virtual-gateway.html)commande dans la AWS CLI référence.

------

## Déployer une passerelle virtuelle
<a name="deploy-virtual-gateway"></a>

[Déployez un service Amazon ECS ou Kubernetes contenant uniquement le conteneur Envoy.](envoy.md) Vous pouvez également déployer le conteneur Envoy sur une EC2 instance Amazon. Pour plus d'informations, consultez [Getting started with App Mesh and Amazon EC2](https://docs.aws.amazon.com/app-mesh/latest/userguide/getting-started-ec2.html). Pour plus d'informations sur le déploiement sur Amazon ECS, consultez [Getting started with App Mesh et Amazon ECS](https://docs.aws.amazon.com/app-mesh/latest/userguide/getting-started-ecs.html) ou [Getting started with AWS App Mesh and Kubernetes to deploy to Kubernetes](https://docs.aws.amazon.com/app-mesh/latest/userguide/getting-started-kubernetes.html). Vous devez définir la variable d'`APPMESH_RESOURCE_ARN`environnement sur `mesh/mesh-name/virtualGateway/virtual-gateway-name` et vous ne devez pas spécifier la configuration du proxy afin que le trafic du proxy ne soit pas redirigé vers lui-même. Par défaut, App Mesh utilise le nom de la ressource que vous avez spécifiée dans `APPMESH_RESOURCE_ARN` lorsque Envoy fait référence à lui-même dans les métriques et les traces. Vous pouvez remplacer ce comportement en définissant la variable d'environnement `APPMESH_RESOURCE_CLUSTER ` avec votre propre nom.

Nous vous recommandons de déployer plusieurs instances du conteneur et de configurer un Network Load Balancer pour équilibrer la charge du trafic vers les instances. Le nom de découverte des services de l'équilibreur de charge est le nom que vous souhaitez que les services externes utilisent pour accéder aux ressources présentes dans le maillage, par exemple*myapp.example.com*. Pour plus d'informations, consultez [Creating a Network Load Balancer](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-network-load-balancer.html) (Amazon ECS), [Creating an External Load Balancer](https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/) (Kubernetes) [ou Tutoriel : Augmentez la disponibilité](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-increase-availability.html) de votre application sur Amazon. EC2 Vous pouvez également trouver d'autres exemples et des procédures pas à pas dans nos exemples d'[App Mesh](https://docs.aws.amazon.com/app-mesh/latest/userguide/examples.html).

Activez l'autorisation du proxy pour Envoy. Pour de plus amples informations, veuillez consulter [Autorisation Envoy Proxy](proxy-authorization.md).

## Supprimer une passerelle virtuelle
<a name="delete-virtual-gateway"></a>

------
#### [ AWS Management Console ]

**Pour supprimer une passerelle virtuelle à l'aide du AWS Management Console**

1. Ouvrez la console App Mesh à l'adresse [https://console.aws.amazon.com/appmesh/](https://console.aws.amazon.com/appmesh/). 

1. Choisissez le maillage dans lequel vous souhaitez supprimer une passerelle virtuelle. Tous les maillages que vous possédez et qui ont été [partagés](sharing.md) avec vous sont répertoriés.

1. Choisissez **Passerelles virtuelles dans** le menu de navigation de gauche.

1. Choisissez la passerelle virtuelle que vous souhaitez supprimer, puis sélectionnez **Supprimer**. Vous ne pouvez pas supprimer une passerelle virtuelle si elle est associée à des routes de passerelle. Vous devez d'abord supprimer toutes les routes de passerelle associées. Vous ne pouvez supprimer une passerelle virtuelle que lorsque votre compte est répertorié comme **propriétaire de la ressource**.

1. Dans la zone de confirmation, tapez **delete** puis sélectionnez **Supprimer**.

------
#### [ AWS CLI ]

**Pour supprimer une passerelle virtuelle à l'aide du AWS CLI**

1. Utilisez la commande suivante pour supprimer votre passerelle virtuelle (remplacez les *red* valeurs par les vôtres) :

   ```
   aws appmesh delete-virtual-gateway \
        --mesh-name meshName \
        --virtual-gateway-name virtualGatewayName
   ```

1. Exemple de sortie :

   ```
   {
       "virtualGateway": {
           "meshName": "meshName",
           "metadata": {
               "arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/meshName/virtualGateway/virtualGatewayName",
               "createdAt": "2022-04-06T10:42:42.015000-05:00",
               "lastUpdatedAt": "2022-04-07T10:57:22.638000-05:00",
               "meshOwner": "123456789012",
               "resourceOwner": "123456789012",
               "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
               "version": 2
           },
           "spec": {
               "listeners": [
                   {
                       "portMapping": {
                           "port": 9080,
                           "protocol": "http"
                       }
                   }
               ]
           },
           "status": {
               "status": "DELETED"
           },
           "virtualGatewayName": "virtualGatewayName"
       }
   }
   ```

Pour plus d'informations sur la suppression d'une passerelle virtuelle à l'aide du AWS CLI for App Mesh, consultez la [delete-virtual-gateway](https://docs.aws.amazon.com/cli/latest/reference/appmesh/delete-virtual-gateway.html)commande dans la AWS CLI référence.

------

# Routes de passerelle
<a name="gateway-routes"></a>

**Important**  
Avis de fin de support : le 30 septembre 2026, AWS le support de. AWS App Mesh Après le 30 septembre 2026, vous ne pourrez plus accéder à la AWS App Mesh console ni aux AWS App Mesh ressources. Pour plus d'informations, consultez ce billet de blog [intitulé Migration from AWS App Mesh to Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect). 

Une route de passerelle est attachée à une passerelle virtuelle et achemine le trafic vers un service virtuel existant. Si un itinéraire correspond à une demande, il peut distribuer le trafic vers un service virtuel cible. Cette rubrique vous aide à utiliser les itinéraires de passerelle dans un maillage de services.

## Création d'un itinéraire de passerelle
<a name="create-gateway-route"></a>

------
#### [ AWS Management Console ]

**Pour créer un itinéraire de passerelle à l'aide du AWS Management Console**

1. Ouvrez la console App Mesh à l'adresse [https://console.aws.amazon.com/appmesh/](https://console.aws.amazon.com/appmesh/). 

1. Choisissez le maillage dans lequel vous souhaitez créer l'itinéraire de passerelle. Tous les maillages que vous possédez et qui ont été [partagés](sharing.md) avec vous sont répertoriés.

1. Choisissez **Passerelles virtuelles dans** le menu de navigation de gauche.

1. Choisissez la passerelle virtuelle à laquelle vous souhaitez associer un nouvel itinéraire de passerelle. Si aucune n'est répertoriée, vous devez d'abord [créer une passerelle virtuelle](virtual_gateways.md#create-virtual-gateway). Vous ne pouvez créer une route de passerelle que pour une passerelle virtuelle dont votre compte est répertorié comme **propriétaire de la ressource**.

1. Dans le tableau des **itinéraires de passerelle**, choisissez **Create gateway route**.

1. Pour le **nom de l'itinéraire de passerelle**, spécifiez le nom à utiliser pour votre itinéraire de passerelle.

1. Pour le **type de route Gateway**, choisissez **http**, **http2** ou **grpc**.

1. Sélectionnez un **nom de service virtuel** existant. Si aucun n'est répertorié, vous devez d'abord créer un [service virtuel](virtual_services.md#create-virtual-service).

1. Choisissez le port qui correspond à la cible pour le **port du fournisseur de services virtuels**. Le port du fournisseur de services virtuels est **requis** lorsque le fournisseur (routeur ou nœud) du service virtuel sélectionné possède plusieurs écouteurs.

1. (Facultatif) Dans **Priorité**, spécifiez la priorité de cette route de passerelle.

1. Pour la configuration **Match**, spécifiez :
   + 

     Si **http/http2** est le type sélectionné :
     + (Facultatif) **Méthode** ‐ Spécifie l'en-tête de méthode à mettre en correspondance dans les requêtes **http**/**http2** entrantes.
     + (Facultatif) **Correspondance des ports** ‐ Faites correspondre le port pour le trafic entrant. La correspondance des ports est **requise** si cette passerelle virtuelle possède plusieurs écouteurs.
     + (Facultatif) **Nom d'hôte exact/suffixe** ‐ Spécifie le nom d'hôte qui doit correspondre à la demande entrante pour être acheminée vers le service virtuel cible.
     + (Facultatif) **Prefix/Exact/Regexpath** ‐ Méthode permettant de faire correspondre le chemin de l'URL.
       + **Correspondance de préfixe** ‐ Une demande correspondante par une route de passerelle est réécrite au nom du service virtuel cible et le préfixe correspondant est réécrit, par défaut. `/` Selon la façon dont vous configurez votre service virtuel, celui-ci peut utiliser un routeur virtuel pour acheminer la demande vers différents nœuds virtuels, en fonction de préfixes ou d'en-têtes spécifiques. 
**Important**  
Vous ne pouvez pas spécifier l'un `/aws-appmesh*` ou l'autre ou `/aws-app-mesh*` pour **Prefix match**. Ces préfixes sont réservés à une future utilisation interne d'App Mesh.
Si plusieurs routes de passerelle sont définies, une demande est associée à la route ayant le plus long préfixe. Par exemple, s'il existait deux routes de passerelle, l'une ayant un préfixe de `/chapter` et l'autre un préfixe de`/`, alors une demande `www.example.com/chapter/` serait mise en correspondance avec la route de passerelle portant le préfixe. `/chapter`
**Note**  
Si vous activez la correspondance basée sur **le chemin** et le **préfixe**, App Mesh permet la normalisation des chemins ([normalize\$1path](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-normalize-path) et [merge\$1slashes](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-merge-slashes)) afin de minimiser la probabilité de vulnérabilités liées à la confusion des chemins.  
Des vulnérabilités liées à la confusion des chemins apparaissent lorsque les parties participant à la demande utilisent des représentations de chemin différentes.
       + **Correspondance** exacte ‐ Le paramètre exact désactive la correspondance partielle pour un itinéraire et garantit qu'il ne renvoie l'itinéraire que si le chemin correspond **EXACTEMENT** à l'URL actuelle.
       + **Regex match** ‐ Utilisé pour décrire des modèles dans lesquels plusieurs URLs peuvent en fait identifier une seule page sur le site Web.
     + (Facultatif) **Paramètres de requête** ‐ Ce champ vous permet de faire correspondre les paramètres de la requête.
     + **(Facultatif) **En-têtes** ‐ Spécifie les en-têtes pour **http et http2**.** Il doit correspondre à la demande entrante à acheminer vers le service virtuel cible.
   + 

     Si **grpc** est le type sélectionné :
     + **Type de correspondance du nom d'hôte** et (facultatif) **correspondance exact/suffixe** ‐ Spécifie le nom d'hôte qui doit être mis en correspondance sur la demande entrante pour être acheminée vers le service virtuel cible. 
     + **nom du service grpc** ‐ Le service **grpc** agit comme une API pour votre application et est défini avec. ProtoBuf
**Important**  
Vous ne pouvez pas spécifier `/aws.app-mesh*` ou `aws.appmesh` pour le **nom du service**. Ces noms de service sont réservés à une future utilisation interne d'App Mesh.
     + (Facultatif) **Métadonnées** ‐ Spécifie les métadonnées pour **grpc.** Il doit correspondre à la demande entrante à acheminer vers le service virtuel cible.

1. (Facultatif) Pour la configuration **de réécriture** :
   + 

     Si **http/http2** est le type sélectionné :
     + 

       Si **Prefix** est le type de correspondance sélectionné :
       + **Annuler la réécriture automatique du nom d'hôte** ‐ Par défaut, le nom d'hôte est réécrit au nom du service virtuel cible.
       + **Annuler la réécriture automatique du préfixe** ‐ Lorsque cette option est activée, la réécriture du préfixe indique la valeur du **préfixe réécrit**.
     + 

       Si **Exact Path** est le type de correspondance sélectionné :
       + **Remplacez la réécriture automatique du nom d'hôte** ‐ par défaut, le nom d'hôte est réécrit au nom du service virtuel cible.
       + **Réécriture du chemin** ‐ Spécifie la valeur du chemin réécrit. Aucun chemin par défaut.
     + 

       Si **Regex Path** est le type de correspondance sélectionné :
       + **Remplacez la réécriture automatique du nom d'hôte** ‐ par défaut, le nom d'hôte est réécrit au nom du service virtuel cible.
       + **Réécriture du chemin** ‐ Spécifie la valeur du chemin réécrit. Aucun chemin par défaut.
   + 

     Si **grpc** est le type sélectionné :
     + **Annuler la réécriture automatique du nom d'hôte** ‐ Par défaut, le nom d'hôte est réécrit au nom du service virtuel cible.

1. Choisissez **Create gateway route** pour terminer.

------
#### [ AWS CLI ]

**Pour créer un itinéraire de passerelle à l'aide du AWS CLI.**

Créez une route de passerelle à l'aide de la commande suivante et saisissez le code JSON (remplacez les *red* valeurs par les vôtres) :

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
   ```

1. Contenu de l'**exemple** create-gateway-route .json :

   ```
   {
       "spec": {
           "httpRoute" : {
               "match" : {
                   "prefix" : "/"
               },
               "action" : {
                   "target" : {
                       "virtualService": {
                           "virtualServiceName": "serviceA.svc.cluster.local"
                       }
                   }
               }
           }
       }
   }
   ```

1. Exemple de sortie :

   ```
   {
       "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"
       }
   }
   ```

Pour plus d'informations sur la création d'un itinéraire de passerelle avec le AWS CLI for App Mesh, consultez la [create-gateway-route](https://docs.aws.amazon.com/cli/latest/reference/appmesh/create-gateway-route.html)commande dans la AWS CLI référence.

------

## Supprimer un itinéraire de passerelle
<a name="delete-gateway-route"></a>

------
#### [ AWS Management Console ]

**Pour supprimer un itinéraire de passerelle à l'aide du AWS Management Console**

1. Ouvrez la console App Mesh à l'adresse [https://console.aws.amazon.com/appmesh/](https://console.aws.amazon.com/appmesh/). 

1. Choisissez le maillage à partir duquel vous souhaitez supprimer un itinéraire de passerelle. Tous les maillages que vous possédez et qui ont été [partagés](sharing.md) avec vous sont répertoriés.

1. Choisissez **Passerelles virtuelles dans** le menu de navigation de gauche.

1. Choisissez la passerelle virtuelle à partir de laquelle vous souhaitez supprimer un itinéraire de passerelle.

1. Dans le tableau des **itinéraires** de passerelle, choisissez l'itinéraire de passerelle que vous souhaitez supprimer et sélectionnez **Supprimer**. Vous ne pouvez supprimer une route de passerelle que si votre compte est répertorié comme **propriétaire de la ressource**.

1. Dans le champ de confirmation, tapez **delete** puis cliquez sur **Supprimer**.

------
#### [ AWS CLI ]

**Pour supprimer un itinéraire de passerelle à l'aide du AWS CLI**

1. Utilisez la commande suivante pour supprimer votre itinéraire de passerelle (remplacez les *red* valeurs par les vôtres) :

   ```
   aws appmesh delete-gateway-route \
        --mesh-name meshName \
        --virtual-gateway-name virtualGatewayName \
        --gateway-route-name gatewayRouteName
   ```

1. Exemple de sortie :

   ```
   {
       "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"
       }
   }
   ```

Pour plus d'informations sur la suppression d'une route de passerelle avec le AWS CLI for App Mesh, consultez la [delete-gateway-route](https://docs.aws.amazon.com/cli/latest/reference/appmesh/delete-gateway-route.html)commande dans la AWS CLI référence.

------