Route - AWS App Mesh

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Route

Un route è associato a un router virtuale. Il percorso viene utilizzato per soddisfare le richieste del router virtuale e per distribuire il traffico ai nodi virtuali associati. Se una route corrisponde a una richiesta, può distribuire il traffico a uno o più nodi virtuali di destinazione. È possibile specificare la ponderazione relativa per ogni nodo virtuale. Questo argomento consente di lavorare con route in una mesh dei servizi.

Creazione di un routing

AWS Management Console

Per creare una route utilizzando ilAWS Management Console

  1. Aprire la console App Mesh all'indirizzohttps://console.aws.amazon.com/appmesh/.

  2. Scegliere la mesh in cui si desidera creare il routing. Tutte le mesh che possiedi e che sono statecondivisocon te sono elencati.

  3. Nel riquadro di navigazione sinistro, scegliere Virtual routers (Router virtuali).

  4. Scegliere il router virtuale a cui si desidera associare una nuova route. Se l'elenco risulta vuoto, è necessariocreazione di un router virtualeLa vendetta.

  5. Nella tabella Routes (Route), scegliere Create route (Crea route). Per creare un percorso, l'ID del tuo account deve essere elencato comeProprietario dell'del routing.

  6. In Route name (Nome route), specificare il nome da utilizzare per la route.

  7. PerTipo di route, scegli il protocollo che desideri indirizzare. Il protocollo selezionato deve corrispondere al protocollo listener selezionato per il router virtuale e al nodo virtuale verso cui si sta indirizzando il traffico.

  8. (Opzionale) PerPriorità della route, specifica una priorità da 0 a 1000 da utilizzare per il percorso. Le route vengono messe in corrispondenza in base al valore specificato, dove 0 è la priorità più alta.

  9. (Facoltativo) ScegliConfigurazione aggiuntiva. Dai protocolli in basso, scegli il protocollo selezionato perTipo di routee specifica le impostazioni desiderate nella console.

  10. PerConfigurazione di destinazione, selezionare il nodo virtuale App Mesh a cui indirizzare il traffico e specificare unWeight. È possibile scegliereAggiungi obiettivoper aggiungere obiettivi aggiuntivi. La percentuale per tutti gli obiettivi deve raggiungere fino a 100. Se non è elencato alcun nodo virtuale, è necessariocreareuno per primo. Se il nodo virtuale selezionato ha più ascoltatori,Porta di destinazioneènecessario.

  11. PerMatchconfigurazione, specificare:

    Matchla configurazione non è disponibile pertcp

    • Sehttp://http2è il tipo selezionato:

      • (Opzionale)Metodo‐ specifica l'intestazione del metodo da abbinare in ingressohttp/http2richieste.

      • (Opzionale)Corrispondenze‐ Abbina la porta al traffico in entrata. La portanecessariose questo router virtuale ha più ascoltatori.

      • (Opzionale)Percorso prefisso/Exact/Regex‐ metodo di corrispondenza del percorso dell'URL.

        • Corrispondrispond‐ una richiesta corrispondente da una route gateway viene riscritta con il nome del servizio virtuale di destinazione e il prefisso corrispondente viene riscritto in/, per impostazione predefinita A seconda di come si configura il servizio virtuale, potrebbe utilizzare un router virtuale per indirizzare la richiesta a diversi nodi virtuali, in base a prefissi o intestazioni specifici.

          Nota

          Se abilitiPercorso/Prefixabbinamento basato, App Mesh consente la normalizzazione del percorso (normalizzare_pathemerge_slashes) per ridurre al minimo la probabilità di vulnerabilità legate alla confusione del percorso.

          Le vulnerabilità relative alla confusione dei percorsi si verificano quando le parti che partecipano alla richiesta utilizzano rappresentazioni di percorsi diverse.

        • Corrispondenza‐ il parametro esatto disabilita la corrispondenza parziale per un percorso e si assicura che restituisca il percorso solo se il percorso corrisponde ESATTAMENTE all'URL corrente.

        • Corrispondenza reg‐ usato per descrivere modelli in cui più URL possono effettivamente identificare una singola pagina del sito web.

      • (Opzionale)Parametri di query‐ questo campo consente di abbinare i parametri della ricerca.

      • (Opzionale)Intestazioni‐ specifica le intestazioni perhttpehttp2. Dovrebbe corrispondere alla richiesta in arrivo da indirizzare al servizio virtuale di destinazione.

    • Segrpcè il tipo selezionato:

      • Nome servizio‐ il servizio di destinazione per il quale soddisfare la richiesta.

      • Nome del metodo‐ il metodo di destinazione per cui soddisfare la richiesta.

      • (Opzionale)Metadati‐ specifica ilMatchin base alla presenza di metadati. Tutto deve corrispondere affinché la richiesta venga elaborata.

  12. SelectInstradamento di.

AWS CLI

Per creare una route utilizzando ilAWS CLI.

Crea un percorso gRPC usando il seguente comando e inserisci JSON (sostituisci ilRossovalori con i tuoi):

  1. aws appmesh create-route \ --cli-input-json file://create-route-grpc.json
  2. Contenuto diesempio 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. Output di esempio:

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

Per ulteriori informazioni sulla creazione di un percorso conAWS CLIper App Mesh, vedere ilcreate-routecomando nelAWS CLIRiferimento.

(Opzionale)Match

  • (Facoltativo) Immettere laNome serviziodel servizio di destinazione corrispondente alla richiesta di. Se non specifichi un nome, le richieste a qualsiasi servizio vengono abbinate.

  • (Facoltativo) Immettere laNome del metododel metodo di destinazione per cui corrisponde la richiesta. Se non specifichi un nome, le richieste a qualsiasi metodo vengono abbinate. Se si specifica un nome di metodo, è necessario specificare un nome di servizio.

(Opzionale)Metadati

Seleziona Add metadata (Aggiungi metadati).

  • (Facoltativo) Immettere laNome dei metadatain base a cui desideri indirizzare, seleziona unTipo di matche inserisci unValore della corrispondenza. SelezioneInverticorrisponderà al contrario. Ad esempio, se specifichi unNome dei metadatadimyMetadata, unTipo di matchdiEsatto, unValore della corrispondenzadi123e selezionareInverti, quindi il percorso viene abbinato a qualsiasi richiesta con un nome di metadati che inizia con qualcosa di diverso123.

  • (Facoltativo) SelezionareMetadatiper aggiungere fino a dieci elementi di metadati.

(Opzionale)Politica nuovi tentativi

Una policy per i nuovi tentativi consente ai client di proteggersi da guasti di rete intermittenti o da guasti lato server intermittenti. Un criterio per i tentativi è facoltativo, ma è consigliato. I valori del timeout dei tentativi definiscono il timeout per ogni tentativo di nuovo tentativo (incluso il tentativo iniziale). Se non definisci una politica di ripetizione, App Mesh potrebbe creare automaticamente una politica predefinita per ciascuno dei tuoi percorsi. Per ulteriori informazioni, consulta la pagina Criterio predefinito di nuovi tentdi .

  • PerTimeout del nuovo tentativo, immettere il numero di unità per la durata del timeout. È necessario un valore se si seleziona un evento di riavvio del protocollo.

  • PerUnità di timeout del nuovo tentativo, seleziona un'unità. È necessario un valore se si seleziona un evento di riavvio del protocollo.

  • PerQuantità max, immettere il numero massimo di tentativi quando la richiesta ha esito negativo. È necessario un valore se si seleziona un evento di riavvio del protocollo. Consigliamo un valore minimo pari a due.

  • Selezionare una o piùEventi di nuovi tentativi HTTP. Ti consigliamo di selezionare almenoerrore di streamingeerrore del gateway.

  • Selezione di selezioneEvento di nuovi tentativi TCP.

  • Selezionare una o piùEventi di nuovi tentativi gRPC. Ti consigliamo di selezionare almenocancellatoenon disponibile.

(Facoltativo) Timeout

  • Il valore predefinito è 15 secondi. Se hai specificato unPolitica nuovi tentativi, quindi la durata specificata qui deve essere sempre maggiore o uguale alla durata del tentativo moltiplicata per laQuantità maxche hai definito nelPolitica nuovi tentativiin modo che la tua politica sui tentativi possa essere completata. Se specifichi una durata superiore a 15 secondi, assicurati che il timeout specificato per il listener di qualsiasi nodo virtualeTargetè inoltre superiore a 15 secondi. Per ulteriori informazioni, consulta la paginaNode virtuali.

  • Un valore di0disabilita il timeout.

  • La durata massima in base alla quale il routing può rimanere inattivo.

(Opzionale) Corrispondi

  • SpecificaPrefixche il percorso deve corrispondere. Ad esempio, se il nome del servizio virtuale è service-b.local e desideri che la route corrisponda alle richieste in service-b.local/metrics, il prefisso deve essere /metrics. Specifica/indirizza tutto il traffico.

  • (Facoltativo) Selezionare unaMetodo.

  • (Facoltativo) Selezionare unaSchema. Applicabile solo per le route HTTP2.

Intestazioni (opzionale)

  • (Facoltativo) SelezionareAggiunta di intestazioni. SpecificareNome intestazionein base a cui desideri indirizzare, seleziona unTipo di matche inserisci unValore della corrispondenza. SelezioneInverticorrisponderà al contrario. Ad esempio, se si specifica un'intestazione denominataclientRequestIdcon unPrefixdi123e selezionareInverti, quindi il percorso viene abbinato a qualsiasi richiesta con un'intestazione che inizia con qualcosa di diverso123.

  • (Facoltativo) SelezionareAggiunta di intestazioni. È possibile aggiungere fino a dieci intestazioni.

(Facoltativo) Politica sui tentativi

Una policy per i nuovi tentativi consente ai client di proteggersi da guasti di rete intermittenti o da guasti lato server intermittenti. Un criterio per i tentativi è facoltativo, ma è consigliato. I valori del timeout dei tentativi definiscono il timeout per ogni tentativo di nuovo tentativo (incluso il tentativo iniziale). Se non definisci una politica di ripetizione, App Mesh potrebbe creare automaticamente una politica predefinita per ciascuno dei tuoi percorsi. Per ulteriori informazioni, consulta la pagina Criterio predefinito di nuovi tentdi .

  • PerTimeout del nuovo tentativo, immettere il numero di unità per la durata del timeout. È necessario un valore se si seleziona un evento di riavvio del protocollo.

  • PerUnità di timeout del nuovo tentativo, seleziona un'unità. È necessario un valore se si seleziona un evento di riavvio del protocollo.

  • PerQuantità max, immettere il numero massimo di tentativi quando la richiesta ha esito negativo. È necessario un valore se si seleziona un evento di riavvio del protocollo. We recommend a value of at least two.

  • Selezionare una o piùEventi di nuovi tentativi HTTP. Ti consigliamo di selezionare almenoerrore di streamingeerrore del gateway.

  • Selezione di selezioneEvento di nuovi tentativi TCP.

(Facoltativo) Timeout

  • Timeout richiesta— Il valore predefinito è 15 secondi. Se hai specificato unPolitica nuovi tentativi, quindi la durata specificata qui deve essere sempre maggiore o uguale alla durata del tentativo moltiplicata per laQuantità maxche hai definito nelPolitica nuovi tentativiin modo che la tua politica sui tentativi possa essere completata.

  • Durata inattiva— Il valore predefinito è 300 secondi.

  • Un valore di0disabilita il timeout.

Nota

Se specifichi un timeout maggiore di quello predefinito, assicurati che anche il timeout specificato per il listener per tutti i partecipanti al nodo virtuale sia maggiore di quello predefinito. Tuttavia, se si riduce il timeout a un valore inferiore a quello predefinito, è facoltativo aggiornare i timeout nei nodi virtuali. Per ulteriori informazioni, consulta la paginaNodi virtuali.

(Facoltativo) Timeout

  • Durata inattiva— Il valore predefinito è 300 secondi.

  • Un valore di0disabilita il timeout.

Eliminazione di un routing

AWS Management Console

Per eliminare una route utilizzando ilAWS Management Console

  1. Aprire la console App Mesh all'indirizzohttps://console.aws.amazon.com/appmesh/.

  2. Scegliere la mesh da cui si desidera eliminare una route. Tutte le mesh che possiedi e che sono statecondivisocon te sono elencati.

  3. Nel riquadro di navigazione sinistro, scegliere Virtual routers (Router virtuali).

  4. Scegliere il router da cui si desidera eliminare una route.

  5. NelRoutetabella, scegli il percorso che desideri eliminare e selezionaEliminanell'angolo in alto a destra.

  6. Nella casella di conferma, digitaredeletee quindi fare clic suElimina.

AWS CLI

Per eliminare una route utilizzando ilAWS CLI

  1. Utilizza il comando seguente per eliminare il routing (sostituisci ilRossovalori con i tuoi):

    aws appmesh delete-route \ --mesh-name meshName \ --virtual-router-name routerName \ --route-name routeName
  2. Output di esempio:

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

Per ulteriori informazioni sull'eliminazione di un percorso conAWS CLIper App Mesh, vedere ildelete-e-e-e-comando nelAWS CLIRiferimento.