itinéraires de passerelle - AWS App Mesh

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.

itinéraires de passerelle

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 allez devoir utiliser les passerelle dans un maillage de service.

Création d'un passerelle

AWS Management Console
Pour créer un passerelle à l'aide deAWS Management Console
  1. Ouvrez la console App Mesh à l'adresse https://console.aws.amazon.com/appmesh/.

  2. 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 avec vous sont répertoriés.

  3. Choisissez Passerelles virtuelles dans le menu de navigation de gauche.

  4. Choisissez la passerelle virtuelle à laquelle vous souhaitez associer une nouvelle route de passerelle. Si aucun n'est répertorié, vous devez d'abord créer un passerelle virtuelle. Vous ne pouvez créer une route de passerelle que pour une passerelle virtuelle dont votre compte est répertorié en tant que propriétaire de la ressource.

  5. Dans le tableau des itinéraires de passerelle, choisissez Créer un itinéraire de passerelle.

  6. Dans Nom de la route de passerelle, spécifiez le nom à utiliser pour votre route de passerelle.

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

  8. Sélectionnez un nom de service virtuel existant. Si aucun n'est répertorié, vous devez d'abord créer un service virtuel.

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

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

  11. 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 d'acheminement vers le service virtuel cible.

      • (Facultatif) Prefix/Exact/Regex path ‐ Méthode permettant de faire correspondre le chemin de l'URL.

        • Correspondance du préfixe ‐ Une demande correspondante par une route de passerelle est réécrite dans le nom du service virtuel cible et le préfixe correspondant est réécrit/, par défaut. Selon la manière 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 spécifier ni l'une/aws-appmesh* ni/aws-app-mesh* l'autre correspondance entre les préfixes. Ces préfixes sont réservés à une utilisation interne future d'App Mesh.

          • Si plusieurs itinéraires de passerelle sont définis, une demande est mise en correspondance avec l'itinéraire dont le préfixe est le plus long. Par exemple, s'il existait deux routes de passerelle, l'une ayant le préfixe de/chapter et l'autre le préfixe de/, alors la demande dewww.example.com/chapter/ serait mise en correspondance avec la route de passerelle portant le/chapter préfixe.

          Note

          Si vous activez la correspondance basée sur le chemin et le préfixe, App Mesh active la normalisation des chemins (normalize_path et merge_slashes) afin de minimiser la probabilité de vulnérabilités de confusion de chemin.

          Des vulnérabilités de confusion de chemin se produisent 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 les modèles dans lesquels plusieurs URL peuvent en fait identifier une seule page du 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. Elle doit correspondre à la demande entrante à router vers le service virtuel cible.

    • Si grpc est le type sélectionné :

      • Type de correspondance du nom d'hôte et (facultatif) correspondance exacte/suffixe ‐ Spécifie le nom d'hôte qui doit être mis en correspondance sur la demande entrante de routage 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* ouaws.appmesh pour le nom du service. Ces noms de service sont réservés à une utilisation interne future d'App Mesh.

      • (Facultatif) Métadonnées ‐ Spécifie les métadonnées pour grpc. Elle doit correspondre à la demande entrante de routage vers le service virtuel cible.

  12. (Facultatif) Pour la configuration de réécriture :

    • Si http/http2 est le type sélectionné :

      • Si Prefix est le type de correspondance sélectionné :

        • Ignorer la réécriture automatique du nom d'hôte ‐ Par défaut, le nom d'hôte est réécrit selon le nom du service virtuel cible.

        • Ignorer la réécriture automatique du préfixe ‐ Lorsque cette option est activée, la réécriture du préfixe spécifie la valeur du préfixe réécrit.

      • Si Exact Path est le type de correspondance sélectionné :

        • Ignorez la réécriture automatique du nom d'hôte ‐ par défaut, le nom d'hôte est réécrit selon le 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é :

        • Ignorez la réécriture automatique du nom d'hôte ‐ par défaut, le nom d'hôte est réécrit selon le 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é :

      • Ignorer la réécriture automatique du nom d'hôte ‐ Par défaut, le nom d'hôte est réécrit selon le nom du service virtuel cible.

  13. Choisissez Créer un itinéraire de passerelle pour terminer.

AWS CLI

Pour créer un itinéraire de passerelle à l'aide duAWS CLI.

Créez une route de passerelle à l'aide de la commande suivante et saisissez JSON (remplacez les valeurs rouges 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
  2. Contenu de l'exemple create-gateway-route .json :

    { "spec": { "httpRoute" : { "match" : { "prefix" : "/" }, "action" : { "target" : { "virtualService": { "virtualServiceName": "serviceA.svc.cluster.local" } } } } } }
  3. 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'une route de passerelle à l'aide duAWS CLI for App Mesh, consultez la create-gateway-routecommande dans laAWS CLI référence.

Supprimer un passerelle

AWS Management Console
Pour supprimer un itinéraire de passerelle à l'aide deAWS Management Console
  1. Ouvrez la console App Mesh à l'adresse https://console.aws.amazon.com/appmesh/.

  2. Choisissez le maillage dont vous souhaitez supprimer un itinéraire de passerelle. Tous les maillages que vous possédez et qui ont été partagés avec vous sont répertoriés.

  3. Choisissez Passerelles virtuelles dans le menu de navigation de gauche.

  4. Choisissez la passerelle virtuelle à partir de laquelle vous souhaitez supprimer une route de passerelle.

  5. 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é en tant que propriétaire de la ressource.

  6. Dans la zone de confirmation, tapezdelete puis cliquez sur Supprimer.

AWS CLI
Pour supprimer un itinéraire de passerelle à l'aide deAWS CLI
  1. Utilisez la commande suivante pour supprimer votre itinéraire de passerelle (remplacez les valeurs rouges par les vôtres) :

    aws appmesh delete-gateway-route \ --mesh-name meshName \ --virtual-gateway-name virtualGatewayName \ --gateway-route-name gatewayRouteName
  2. 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 à l'aide duAWS CLI for App Mesh, consultez la delete-gateway-routecommande dans laAWS CLI référence.