

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

# Percorsi
<a name="routes"></a>

**Importante**  
Avviso di fine del supporto: il 30 settembre 2026, AWS interromperà il supporto per. AWS App Mesh Dopo il 30 settembre 2026, non potrai più accedere alla AWS App Mesh console o alle risorse. AWS App Mesh Per ulteriori informazioni, consulta questo post di blog [Migrazione AWS App Mesh da Amazon ECS Service Connect.](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect) 

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

## Creare un percorso
<a name="create-route"></a>

------
#### [ Console di gestione AWS ]

**Per creare un percorso utilizzando il Console di gestione AWS**

1. Apri la console App Mesh all'indirizzo [https://console.aws.amazon.com/appmesh/](https://console.aws.amazon.com/appmesh/). 

1. Scegli la mesh in cui vuoi creare il percorso. Sono elencate tutte le mesh che possiedi e che sono state [condivise](sharing.md) con te.

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

1. Scegli il router virtuale a cui desideri associare un nuovo percorso. Se non ne è elencato nessuno, devi prima [creare un router virtuale](virtual_routers.md#create-virtual-router).

1. Nella tabella **Routes (Route)**, scegliere **Create route (Crea route)**. Per creare un percorso, l'ID del tuo account deve essere indicato come **proprietario della risorsa** del percorso.

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

1. Per **Tipo di percorso**, scegli il protocollo che desideri instradare. Il protocollo selezionato deve corrispondere al protocollo listener selezionato per il router virtuale e il nodo virtuale verso cui instradare il traffico.

1. (Facoltativo) Per la **priorità del percorso**, specifica una priorità compresa tra 0 e 1000 da utilizzare per il percorso. Le route vengono messe in corrispondenza in base al valore specificato, dove 0 è la priorità più alta.

1. (Facoltativo) Scegli Configurazione **aggiuntiva**. Dai protocolli in basso, scegli il protocollo selezionato per **Tipo di percorso** e specifica le impostazioni desiderate nella console.

1. Per la **configurazione di Target**, seleziona il nodo virtuale App Mesh esistente verso cui indirizzare il traffico e specifica un **Weight**. Puoi scegliere **Aggiungi destinazione** per aggiungere altre destinazioni. La percentuale per tutti gli obiettivi deve essere pari a 100. Se non è elencato alcun nodo virtuale, devi prima [crearne](virtual_nodes.md#vn-create-virtual-node) uno. Se il nodo virtuale selezionato ha più listener, è **richiesta** la **porta Target**.

1. Per la configurazione **Match**, specifica:

   *La configurazione **Match** non è disponibile per `tcp`*
   + 

     Se **http/http2** è il tipo selezionato:
     + ****(Facoltativo) **Metodo** ‐ specifica l'intestazione del metodo da abbinare nelle richieste http/http2 in entrata.****
     + (Facoltativo) **Port match ‐ Corrisponde alla porta** per il traffico in entrata. La corrispondenza delle porte è **richiesta** se questo router virtuale ha più listener.
     + (Facoltativo) **Prefix/Exact/Regexpath** ‐ metodo per abbinare il percorso dell'URL.
       + **Prefix match** ‐ una richiesta corrispondente proveniente da una route gateway viene riscritta nel nome del servizio virtuale di destinazione e il prefisso corrispondente viene riscritto in, per impostazione predefinita. `/` A seconda di come configuri 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 abiliti la corrispondenza basata su **Path** **/Prefix**, App Mesh abilita la normalizzazione del percorso ([normalize\_path](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) e [merge\_slashes](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)) per ridurre al minimo la probabilità di vulnerabilità legate alla confusione dei percorsi.  
Le vulnerabilità legate alla confusione dei percorsi si verificano quando le parti che partecipano alla richiesta utilizzano rappresentazioni di percorso diverse.
       + **Corrispondenza** esatta: il parametro esatto disabilita la corrispondenza parziale per una rotta e si assicura che restituisca la rotta solo se il percorso corrisponde ESATTAMENTE all'URL corrente.
       + **Regex match** ‐ usato per descrivere modelli in cui più di uno URLs possono effettivamente identificare una singola pagina sul sito web.
     + (Facoltativo) **Parametri di interrogazione** ‐ questo campo consente di abbinare i parametri della query.
     + **(Facoltativo) **Headers** ‐ specifica le intestazioni per **http** e http2.** Deve corrispondere alla richiesta in entrata da indirizzare al servizio virtuale di destinazione.
   + 

     Se **grpc** è il tipo selezionato:
     + **Nome del servizio** ‐ il servizio di destinazione per il quale abbinare la richiesta.
     + **Nome del metodo** ‐ il metodo di destinazione per il quale abbinare la richiesta.
     + (Facoltativo) **Metadati** ‐ specifica `Match` in base alla presenza di metadati. Affinché la richiesta venga elaborata, tutti devono corrispondere.

1. Seleziona **Crea percorso**.

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

**Per creare un percorso utilizzando il AWS CLI.**

Crea un percorso gRPC usando il seguente comando e inserisci JSON (sostituisci {{red}} i valori con i tuoi):

1. 

   ```
   aws appmesh create-route \
        --cli-input-json file://create-route-grpc.json
   ```

1. **Contenuto dell'esempio .json** create-route-grpc

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

1. 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 con AWS CLI for App Mesh, vedere il comando [create-route](https://docs.aws.amazon.com/cli/latest/reference/appmesh/create-route.html) nel AWS CLI riferimento.

------

### gRPC
<a name="grpc"></a>

### **(Facoltativo) Match**

+ (Facoltativo) Inserire il **nome** del servizio di destinazione per cui corrispondere alla richiesta. Se non specifichi un nome, le richieste a qualsiasi servizio vengono abbinate.
+ (Facoltativo) Immettete il **nome** del metodo di destinazione per cui corrispondere alla richiesta. Se non specifichi un nome, le richieste relative a qualsiasi metodo vengono abbinate. Se si specifica un nome di metodo, è necessario specificare un nome di servizio.

### (Facoltativo) **Metadati**


Seleziona **Add metadata (Aggiungi metadati)**.
+ (Facoltativo) Inserisci il **nome dei metadati** in base al quale desideri eseguire il routing, seleziona un **tipo di corrispondenza** e inserisci un valore di **corrispondenza**. Selezionando **Inverti si** otterrà il risultato opposto. Ad esempio, se si specifica un **nome di metadati**`myMetadata`, un **tipo di corrispondenza** di **Exact**, un **valore di corrispondenza** di `123` e si seleziona **Inverti**, la route viene abbinata per qualsiasi richiesta il cui nome di metadati inizi con un nome di metadati diverso da. `123`
+ (Facoltativo) Seleziona **Aggiungi metadati per aggiungere fino a dieci elementi di metadati**. 

### **(Facoltativo) Politica di nuovo tentativo**


Una policy per i nuovi tentativi consente ai client di proteggersi da guasti di rete intermittenti o da guasti lato server intermittenti. La politica relativa ai nuovi tentativi è facoltativa, ma consigliata. I valori di timeout del tentativo definiscono il timeout per ogni tentativo (incluso il tentativo iniziale). Se non definisci una politica per i nuovi tentativi, App Mesh può creare automaticamente una politica predefinita per ciascuno dei tuoi percorsi. Per ulteriori informazioni, consulta [Politica predefinita per i nuovi tentativi di routing](envoy-defaults.md#default-retry-policy).
+ Per il **timeout Riprova**, inserisci il numero di unità per la durata del timeout. È richiesto un valore se si seleziona un evento di ripetizione del protocollo.
+ Per l'unità **di timeout Retry, seleziona un'unità**. È richiesto un valore se si seleziona un evento di ripetizione del protocollo.
+ Per Numero **massimo di tentativi**, inserisci il numero massimo di tentativi in caso di esito negativo della richiesta. È richiesto un valore se si seleziona un evento di ripetizione del protocollo. Consigliamo un valore di almeno due.
+ Seleziona uno o più **eventi di ripetizione HTTP**. **Ti consigliamo di selezionare almeno **stream-error e gateway-error**.**
+ **Seleziona un evento di nuovo tentativo TCP.**
+ Seleziona uno o più eventi di **riprova gRPC**. **Ti consigliamo di selezionare almeno **annullati** e non disponibili.**

### **(Facoltativo) Timeout**

+ L'impostazione predefinita è 15 secondi. Se hai specificato una **politica di nuovi** tentativi, la durata specificata qui deve essere sempre maggiore o uguale alla durata dei nuovi tentativi moltiplicata per il **numero massimo di tentativi definito nella politica Riprova**, in modo che la **politica dei nuovi** tentativi possa essere completata. **Se specifichi una durata superiore a 15 secondi, assicurati che anche il timeout specificato per il listener di qualsiasi nodo virtuale Target sia superiore a 15 secondi.** Per ulteriori informazioni, consulta [Virtual](https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_nodes.html) Nodes.
+ Il valore `0` disabilita il timeout. 
+ Il periodo massimo di inattività del percorso.

### HTTP e HTTP/2
<a name="http-http2"></a>

### (Facoltativo) Corrispondenza

+ Specificate il **prefisso** a cui deve corrispondere la rotta. 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`. Specificare i `/` percorsi per tutto il traffico.
+ (Facoltativo) Seleziona un **metodo**. 
+ (Facoltativo) Seleziona uno **schema**. Applicabile solo per i HTTP2 percorsi. 

### (Facoltativo) Intestazioni

+ (Facoltativo) Seleziona **Aggiungi intestazione**. Inserisci il **nome dell'intestazione** in base al quale desideri eseguire il routing, seleziona un **tipo di corrispondenza** e inserisci un valore di **corrispondenza**. Selezionando **Inverti si** otterrà il risultato opposto. Ad esempio, se si specifica un'intestazione denominata `clientRequestId` con un **prefisso** di `123` e si seleziona **Inverti**, la route viene abbinata per qualsiasi richiesta con un'intestazione che inizia con un valore diverso da. `123`
+ **(Facoltativo) Seleziona Aggiungi intestazione.** Puoi aggiungere fino a dieci intestazioni. 

### **(Facoltativo) Politica di riprova**


Una policy per i nuovi tentativi consente ai client di proteggersi da guasti di rete intermittenti o da guasti lato server intermittenti. La politica relativa ai nuovi tentativi è facoltativa, ma consigliata. I valori di timeout del tentativo definiscono il timeout per ogni tentativo (incluso il tentativo iniziale). Se non definisci una politica per i nuovi tentativi, App Mesh può creare automaticamente una politica predefinita per ciascuno dei tuoi percorsi. Per ulteriori informazioni, consulta [Politica predefinita per i nuovi tentativi di routing](envoy-defaults.md#default-retry-policy).
+ Per il **timeout Riprova**, inserisci il numero di unità per la durata del timeout. È richiesto un valore se si seleziona un evento di ripetizione del protocollo.
+ Per l'unità **di timeout Retry, seleziona un'unità**. È richiesto un valore se si seleziona un evento di ripetizione del protocollo.
+ Per Numero **massimo di tentativi**, inserisci il numero massimo di tentativi in caso di esito negativo della richiesta. È richiesto un valore se si seleziona un evento di ripetizione del protocollo. Consigliamo un valore di almeno due.
+ Seleziona uno o più **eventi di ripetizione HTTP**. **Ti consigliamo di selezionare almeno **stream-error e gateway-error**.**
+ **Seleziona un evento di nuovo tentativo TCP.**

### **(Facoltativo) Timeout**

+ **Timeout della richiesta**: l'impostazione predefinita è 15 secondi. Se hai specificato una **politica di nuovi** tentativi, la durata specificata qui deve essere sempre maggiore o uguale alla durata dei nuovi tentativi moltiplicata per il **numero massimo di tentativi definito nella politica Riprova**, in modo da consentire il completamento della **politica** di nuovi tentativi.
+ **Durata di inattività: l'impostazione predefinita** è 300 secondi.
+ Il valore `0` disabilita 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 del valore predefinito. Tuttavia, se riduci il timeout a un valore inferiore a quello predefinito, è facoltativo aggiornare i timeout nei nodi virtuali. [Per ulteriori informazioni, consulta Virtual Nodes.](https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_nodes.html)

### TCP
<a name="tcp"></a>

### **(Facoltativo) Timeout**

+ **Durata di inattività**: l'impostazione predefinita è 300 secondi.
+ Il valore `0` disabilita il timeout.

## Eliminazione di un percorso
<a name="delete-route"></a>

------
#### [ Console di gestione AWS ]

**Per eliminare un percorso utilizzando il Console di gestione AWS**

1. Apri la console App Mesh all'indirizzo [https://console.aws.amazon.com/appmesh/](https://console.aws.amazon.com/appmesh/). 

1. Scegli la mesh da cui desideri eliminare un percorso. Sono elencate tutte le mesh che possiedi e che sono state [condivise](sharing.md) con te.

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

1. Scegli il router da cui desideri eliminare un percorso.

1. Nella tabella **Percorsi**, scegli il percorso che desideri eliminare e seleziona **Elimina** nell'angolo in alto a destra.

1. Nella casella di conferma, digita **delete** e quindi fai clic su **Elimina**.

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

**Per eliminare un percorso utilizzando il AWS CLI**

1. Usa il seguente comando per eliminare la tua rotta (sostituisci i {{red}} valori con i tuoi):

   ```
   aws appmesh delete-route \
        --mesh-name {{meshName}} \
        --virtual-router-name {{routerName}} \
        --route-name {{routeName}}
   ```

1. 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 con AWS CLI for App Mesh, vedere il comando [delete-route](https://docs.aws.amazon.com/cli/latest/reference/appmesh/delete-route.html) nel riferimento. AWS CLI 

------