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

Acheminements

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.

Un itinéraire est associé à un routeur virtuel. La route est utilisée pour répondre aux demandes du routeur virtuel et pour distribuer le trafic à ses nœuds virtuels associés. Si un itinéraire correspond à une demande, il peut distribuer le trafic vers un ou plusieurs nœuds virtuels cibles. Vous pouvez définir une pondération relative pour chaque nœud virtuel. Cette rubrique vous aide à travailler avec des itinéraires dans un maillage de services.

Création d'un itinéraire

AWS Management Console
Pour créer un itinéraire à l'aide du AWS 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. Tous les maillages que vous possédez et qui ont été partagés avec vous sont répertoriés.

  3. Choisissez Virtual routeurs (Routeurs virtuels) dans le panneau de navigation gauche.

  4. Choisissez le routeur virtuel auquel vous souhaitez associer un nouvel itinéraire. Si aucun n'est répertorié, vous devez d'abord créer un routeur virtuel.

  5. Dans le tableau Routes, choisissez Create route (Créer une route). Pour créer un itinéraire, votre identifiant de compte doit être indiqué en tant que propriétaire de la ressource de l'itinéraire.

  6. Pour Route name (Nom de route), indiquez le nom à utiliser pour votre route.

  7. Dans Type de route, choisissez le protocole que vous souhaitez router. Le protocole que vous sélectionnez doit correspondre au protocole d'écoute que vous avez sélectionné pour votre routeur virtuel et le nœud virtuel vers lequel vous acheminez le trafic.

  8. (Facultatif) Pour la priorité de l'itinéraire, spécifiez une priorité comprise entre 0 et 1 000 à utiliser pour votre itinéraire. La correspondance pour les routes se fait en fonction de la valeur spécifiée, où 0 est la priorité la plus haute.

  9. (Facultatif) Choisissez Configuration supplémentaire. Dans les protocoles ci-dessous, choisissez le protocole que vous avez sélectionné pour le type de route et spécifiez les paramètres souhaités dans la console.

  10. Pour la configuration de Target, sélectionnez le nœud virtuel App Mesh existant vers lequel acheminer le trafic et spécifiez un poids. Vous pouvez choisir Ajouter une cible pour ajouter des cibles supplémentaires. Le pourcentage pour toutes les cibles doit être égal à 100. Si aucun nœud virtuel n'est répertorié, vous devez d'abord en créer un. Si le nœud virtuel sélectionné possède plusieurs écouteurs, le port cible est requis.

  11. Pour la configuration Match, spécifiez :

    La configuration Match n'est pas disponible pour tcp

    • 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 ce routeur virtuel possède plusieurs écouteurs.

      • (Facultatif) Prefix/Exact/Regex path ‐ méthode pour faire correspondre le chemin du. 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.

          Note

          Si vous activez la correspondance basée sur le chemin et le préfixe, App Mesh permet la normalisation des chemins (normalize_path et 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 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 EXACT correspond à 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é :

      • Nom du service ‐ le service de destination pour lequel la demande doit correspondre.

      • Nom de la méthode ‐ la méthode de destination pour laquelle correspondre la demande.

      • (Facultatif) Métadonnées ‐ Spécifie la Match base de la présence de métadonnées. Tous doivent correspondre pour que la demande soit traitée.

  12. Sélectionnez Créer un itinéraire.

AWS CLI

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

Créez une RPC route g à l'aide de la commande et de l'entrée suivantes JSON (remplacez le red valeurs (avec les vôtres) :

  1. aws appmesh create-route \ --cli-input-json file://create-route-grpc.json
  2. Contenu de l'exemple create-route-grpc .json

    { "meshName" : "meshName", "routeName" : "routeName", "spec" : { "grpcRoute" : { "action" : { "weightedTargets" : [ { "virtualNode" : "nodeName", "weight" : 100 } ] }, "match" : { "metadata" : [ { "invert" : false, "match" : { "prefix" : "123" }, "name" : "myMetadata" } ], "methodName" : "nameOfmethod", "serviceName" : "serviceA.svc.cluster.local" }, "retryPolicy" : { "grpcRetryEvents" : [ "deadline-exceeded" ], "httpRetryEvents" : [ "server-error", "gateway-error" ], "maxRetries" : 3, "perRetryTimeout" : { "unit" : "s", "value" : 15 }, "tcpRetryEvents" : [ "connection-error" ] } }, "priority" : 100 }, "virtualRouterName" : "routerName" }
  3. Exemple de sortie :

    { "route": { "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualRouter/routerName/route/routeName", "createdAt": "2022-04-06T13:48:20.749000-05:00", "lastUpdatedAt": "2022-04-06T13:48:20.749000-05:00", "meshOwner": "123456789012", "resourceOwner": "210987654321", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "routeName": "routeName", "spec": { "grpcRoute": { "action": { "weightedTargets": [ { "virtualNode": "nodeName", "weight": 100 } ] }, "match": { "metadata": [ { "invert": false, "match": { "prefix": "123" }, "name": "myMetadata" } ], "methodName": "nameOfMehod", "serviceName": "serviceA.svc.cluster.local" }, "retryPolicy": { "grpcRetryEvents": [ "deadline-exceeded" ], "httpRetryEvents": [ "server-error", "gateway-error" ], "maxRetries": 3, "perRetryTimeout": { "unit": "s", "value": 15 }, "tcpRetryEvents": [ "connection-error" ] } }, "priority": 100 }, "status": { "status": "ACTIVE" }, "virtualRouterName": "routerName" } }

Pour plus d'informations sur la création d'un itinéraire avec le AWS CLI for App Mesh, consultez la commande create-route dans la AWS CLI référence.

(Facultatif) Correspondance

  • (Facultatif) Entrez le nom du service de destination correspondant à la demande. Si vous ne spécifiez aucun nom, les demandes adressées à n'importe quel service sont mises en correspondance.

  • (Facultatif) Entrez le nom de la méthode de destination correspondant à la demande. Si vous ne spécifiez aucun nom, les demandes adressées à n'importe quelle méthode sont mises en correspondance. Si vous spécifiez un nom de méthode, vous devez indiquer un nom de service.

(Facultatif) Métadonnées

Sélectionnez Add metadata (Ajouter des métadonnées).

  • (Facultatif) Entrez le nom des métadonnées sur lequel vous souhaitez effectuer le routage, sélectionnez un type de correspondance et entrez une valeur de correspondance. Si vous sélectionnez Inverser, vous obtiendrez le résultat inverse. Par exemple, si vous spécifiez un nom de métadonnées demyMetadata, un type de correspondance exact, une valeur de correspondance de 123 et que vous sélectionnez Inverser, l'itinéraire est mis en correspondance pour toute demande dont le nom de métadonnées commence par autre chose que123.

  • (Facultatif) Sélectionnez Ajouter des métadonnées pour ajouter jusqu'à dix éléments de métadonnées.

(Facultatif) Politique de nouvelle tentative

Une stratégie de nouvelle tentative permet aux clients de se protéger contre les défaillances intermittentes du réseau et les défaillances intermittentes côté serveur. Une politique de nouvelle tentative est facultative, mais recommandée. Les valeurs du délai d'expiration définissent le délai d'expiration par nouvelle tentative (y compris la tentative initiale). Si vous ne définissez pas de politique de réessai, App Mesh peut créer automatiquement une politique par défaut pour chacun de vos itinéraires. Pour de plus amples informations, veuillez consulter Politique de nouvelle tentative d'itinéraire par défaut.

  • Pour Réessayer, entrez le nombre d'unités correspondant à la durée du délai d'expiration. Une valeur est requise si vous sélectionnez un événement de nouvelle tentative de protocole.

  • Pour l'unité de temporisation de la nouvelle tentative, sélectionnez une unité. Une valeur est requise si vous sélectionnez un événement de nouvelle tentative de protocole.

  • Pour Nombre maximal de tentatives, entrez le nombre maximal de tentatives en cas d'échec de la demande. Une valeur est requise si vous sélectionnez un événement de nouvelle tentative de protocole. Nous recommandons une valeur d'au moins deux.

  • Sélectionnez un ou plusieurs événements HTTP de nouvelle tentative. Nous vous recommandons de sélectionner au moins stream-error et gateway-error.

  • Sélectionnez un événement TCP de nouvelle tentative.

  • Sélectionnez un ou plusieurs événements de RPC nouvelle tentative. Nous vous recommandons de sélectionner au moins annulé et indisponible.

Temporisations (facultatives)

  • La valeur par défaut est de 15 secondes. Si vous avez défini une politique de nouvelles tentatives, la durée que vous spécifiez ici doit toujours être supérieure ou égale à la durée de nouvelles tentatives multipliée par le nombre maximal de tentatives que vous avez défini dans la politique de nouvelles tentatives afin que votre politique de nouvelles tentatives puisse être appliquée. Si vous spécifiez une durée supérieure à 15 secondes, assurez-vous que le délai d'attente spécifié pour l'écouteur de n'importe quel nœud virtuel Target est également supérieur à 15 secondes. Pour plus d'informations, consultez la section Nœuds virtuels.

  • La valeur 0 désactive le délai d'attente.

  • Durée maximale pendant laquelle l'itinéraire peut être inactif.

(Facultatif) Correspondance

  • Spécifiez le préfixe auquel l'itinéraire doit correspondre. Par exemple, si votre nom de service virtuel est service-b.local et que vous souhaitez que la route fasse correspondre des demandes à service-b.local/metrics, votre préfixe doit être /metrics. Spécifier / les itinéraires pour tout le trafic.

  • (Facultatif) Sélectionnez une méthode.

  • (Facultatif) Sélectionnez un schéma. Applicable uniquement pour HTTP2 les itinéraires.

En-têtes (facultatifs)

  • (Facultatif) Sélectionnez Ajouter un en-tête. Entrez le nom de l'en-tête sur lequel vous souhaitez effectuer le routage, sélectionnez un type de correspondance et entrez une valeur de correspondance. Si vous sélectionnez Inverser, vous obtiendrez le résultat inverse. Par exemple, si vous spécifiez un en-tête nommé clientRequestId avec un préfixe de 123 et que vous sélectionnez Inverser, l'itinéraire correspond à toute demande dont l'en-tête commence par autre chose que. 123

  • (Facultatif) Sélectionnez Ajouter un en-tête. Vous pouvez ajouter jusqu'à dix en-têtes.

(Facultatif) Politique de nouvelle tentative

Une stratégie de nouvelle tentative permet aux clients de se protéger contre les défaillances intermittentes du réseau et les défaillances intermittentes côté serveur. Une politique de nouvelle tentative est facultative, mais recommandée. Les valeurs du délai d'expiration définissent le délai d'expiration par nouvelle tentative (y compris la tentative initiale). Si vous ne définissez pas de politique de réessai, App Mesh peut créer automatiquement une politique par défaut pour chacun de vos itinéraires. Pour de plus amples informations, veuillez consulter Politique de nouvelle tentative d'itinéraire par défaut.

  • Pour Réessayer, entrez le nombre d'unités correspondant à la durée du délai d'expiration. Une valeur est requise si vous sélectionnez un événement de nouvelle tentative de protocole.

  • Pour l'unité de temporisation de la nouvelle tentative, sélectionnez une unité. Une valeur est requise si vous sélectionnez un événement de nouvelle tentative de protocole.

  • Pour Nombre maximal de tentatives, entrez le nombre maximal de tentatives en cas d'échec de la demande. Une valeur est requise si vous sélectionnez un événement de nouvelle tentative de protocole. Nous recommandons une valeur d'au moins deux.

  • Sélectionnez un ou plusieurs événements HTTP de nouvelle tentative. Nous vous recommandons de sélectionner au moins stream-error et gateway-error.

  • Sélectionnez un événement TCP de nouvelle tentative.

Temporisations (facultatives)

  • Délai d'expiration de la demande : la valeur par défaut est de 15 secondes. Si vous avez défini une politique de nouvelles tentatives, la durée que vous spécifiez ici doit toujours être supérieure ou égale à la durée de nouvelles tentatives multipliée par le nombre maximal de tentatives que vous avez défini dans la politique de nouvelles tentatives afin que votre politique de nouvelles tentatives puisse être appliquée.

  • Durée d'inactivité : la valeur par défaut est de 300 secondes.

  • La valeur 0 désactive le délai d'attente.

Note

Si vous spécifiez un délai d'attente supérieur à la valeur par défaut, assurez-vous que le délai spécifié pour l'écouteur pour tous les participants du nœud virtuel est également supérieur à la valeur par défaut. Toutefois, si vous réduisez le délai d'expiration à une valeur inférieure à la valeur par défaut, il est facultatif de mettre à jour le délai d'expiration au niveau des nœuds virtuels. Pour plus d'informations, consultez la section Nœuds virtuels.

Temporisations (facultatives)

  • Durée d'inactivité : la valeur par défaut est de 300 secondes.

  • La valeur 0 désactive le délai d'attente.

Supprimer un itinéraire

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

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

  3. Choisissez Virtual routeurs (Routeurs virtuels) dans le panneau de navigation gauche.

  4. Choisissez le routeur à partir duquel vous souhaitez supprimer un itinéraire.

  5. Dans le tableau Routes, choisissez l'itinéraire que vous souhaitez supprimer et sélectionnez Supprimer dans le coin supérieur droit.

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

AWS CLI
Pour supprimer un itinéraire à l'aide du AWS CLI
  1. Utilisez la commande suivante pour supprimer votre itinéraire (remplacez le red valeurs (avec les vôtres) :

    aws appmesh delete-route \ --mesh-name meshName \ --virtual-router-name routerName \ --route-name routeName
  2. Exemple de sortie :

    { "route": { "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualRouter/routerName/route/routeName", "createdAt": "2022-04-06T13:46:54.750000-05:00", "lastUpdatedAt": "2022-04-07T10:43:57.152000-05:00", "meshOwner": "123456789012", "resourceOwner": "210987654321", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 2 }, "routeName": "routeName", "spec": { "grpcRoute": { "action": { "weightedTargets": [ { "virtualNode": "nodeName", "weight": 100 } ] }, "match": { "metadata": [ { "invert": false, "match": { "prefix": "123" }, "name": "myMetadata" } ], "methodName": "methodName", "serviceName": "serviceA.svc.cluster.local" }, "retryPolicy": { "grpcRetryEvents": [ "deadline-exceeded" ], "httpRetryEvents": [ "server-error", "gateway-error" ], "maxRetries": 3, "perRetryTimeout": { "unit": "s", "value": 15 }, "tcpRetryEvents": [ "connection-error" ] } }, "priority": 100 }, "status": { "status": "DELETED" }, "virtualRouterName": "routerName" } }

Pour plus d'informations sur la suppression d'un itinéraire avec le AWS CLI for App Mesh, consultez la commande delete-route dans la AWS CLI référence.