

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

# Gateway virtuali
<a name="virtual_gateways"></a>

**Importante**  
Avviso di fine del supporto: il 30 settembre 2026, AWS verrà interrotto 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 gateway virtuale consente alle risorse esterne alla mesh di comunicare con le risorse che si trovano all'interno della mesh. Il gateway virtuale rappresenta un proxy Envoy in esecuzione in un servizio Amazon ECS, in un servizio Kubernetes o su un'istanza Amazon. EC2 A differenza di un nodo virtuale, che rappresenta Envoy in esecuzione con un'applicazione, un gateway virtuale rappresenta Envoy distribuito da solo. 

Le risorse esterne devono essere in grado di risolvere un nome DNS in un indirizzo IP assegnato al servizio o all'istanza che esegue Envoy. Envoy può quindi accedere a tutta la configurazione dell'App Mesh per le risorse che si trovano all'interno della mesh. [La configurazione per la gestione delle richieste in arrivo sul Virtual Gateway viene specificata utilizzando Gateway Routes.](https://docs.aws.amazon.com/app-mesh/latest/userguide/gateway-routes.html)

**Importante**  
Un gateway virtuale con un HTTP o un HTTP2 listener riscrive il nome host della richiesta in entrata nel nome del servizio virtuale di destinazione Gateway Route e il prefisso corrispondente dal Gateway Route viene riscritto in, per impostazione predefinita. `/` Ad esempio, se hai configurato il prefisso Gateway route match con e`/chapter`, se la richiesta in arrivo è, la richiesta verrebbe riscritta su. `/chapter/1` `/1` Per configurare le riscritture, consulta la sezione [Creazione di una route gateway](https://docs.aws.amazon.com/app-mesh/latest/userguide/gateway-routes.html#create-gateway-route) da Gateway Routes.  
Quando si crea un gateway virtuale, `proxyConfiguration` e non `user` deve essere configurato.

Per completare una end-to-end procedura dettagliata, consulta [Configurazione](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-ingress-gateway) del gateway in ingresso.

## Creazione di un gateway virtuale
<a name="create-virtual-gateway"></a>

**Nota**  
Quando si crea un gateway virtuale, è necessario aggiungere un selettore di namespace con un'etichetta per identificare l'elenco di namespace a cui associare Gateway Routes al gateway virtuale creato.

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

**Per creare un gateway virtuale 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 gateway virtuale. Sono elencate tutte le mesh che possiedi e che sono state [condivise](sharing.md) con te.

1. Scegli **Gateway virtuali nella barra** di navigazione a sinistra.

1. Scegli **Crea gateway virtuale**.

1. Per **Nome gateway virtuale**, inserisci un nome per il tuo gateway virtuale.

1. (Facoltativo, ma consigliato) Configura le impostazioni **predefinite delle politiche del client**.

   1. (Facoltativo) Seleziona **Enforce TLS** se desideri che il gateway comunichi solo con i servizi virtuali utilizzando Transport Layer Security (TLS).

   1. (Facoltativo) Per **Porte**, specifica una o più porte su cui desideri imporre la comunicazione TLS con i servizi virtuali.

   1. Per **Metodo di convalida**, selezionate una delle seguenti opzioni. Il certificato specificato deve già esistere e soddisfare requisiti specifici. Per ulteriori informazioni, consulta [Requisiti del certificato](tls.md#virtual-node-tls-prerequisites).
      + **AWS Autorità di certificazione privata**hosting: seleziona uno o più **certificati** esistenti.
      + Hosting **Envoy Secret Discovery Service (SDS)**: inserisci il nome del segreto che Envoy recupera utilizzando Secret Discovery Service.
      + **Hosting di file locale**: specifica il percorso del file della **catena di certificati** sul file system in cui è distribuito Envoy.

   1. (Facoltativo) Inserite un nome alternativo per il **soggetto**. Per aggiungerne altri SANs, seleziona **Aggiungi SAN**. SANs deve essere in formato FQDN o URI.

   1. (Facoltativo) Seleziona **Fornisci certificato client** e una delle opzioni seguenti per fornire un certificato client quando un server lo richiede e abilitare l'autenticazione TLS reciproca. Per ulteriori informazioni su Mutual TLS, consulta i documenti di [autenticazione TLS Mutual](https://docs.aws.amazon.com/app-mesh/latest/userguide/mutual-tls.html) App Mesh.
      + Hosting **Envoy Secret Discovery Service (SDS)**: inserisci il nome del segreto che Envoy recupera utilizzando Secret Discovery Service.
      + **Hosting di file locale**: specifica il percorso del file della **catena di certificati**, nonché la **chiave privata**, sul file system in cui è distribuito Envoy. Per una descrizione completa e dettagliata end-to-end dell'implementazione di una mesh con un'applicazione di esempio che utilizza la crittografia con file locali, vedi [Configurazione di TLS con certificati TLS](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-tls-file-provided) forniti da file su. GitHub

1. **(Facoltativo) Per configurare la registrazione, seleziona Registrazione.** Immettete il **percorso dei log di accesso HTTP** che desiderate che Envoy utilizzi. Ti consigliamo il `/dev/stdout` percorso in modo da poter utilizzare i driver di registro Docker per esportare i log di Envoy su un servizio come Amazon Logs. CloudWatch 
**Nota**  
I log devono ancora essere integrati da un agente nell'applicazione e inviati a una destinazione. Questo percorso file indica a Envoy dove inviare i log. 

1. **Configura** il listener.

   1. Seleziona un **protocollo** e specifica la **porta** su cui Envoy ascolta il traffico. Il listener **http** consente la transizione della connessione ai websocket. È possibile fare clic su **Aggiungi ascoltatore per aggiungere più ascoltatori.** Il pulsante **Rimuovi rimuoverà** quel listener.

   1. (Facoltativo) **Abilita il pool di connessioni** 

      Il pool di connessioni limita il numero di connessioni che Virtual Gateway Envoy può stabilire contemporaneamente. Ha lo scopo di proteggere l'istanza di Envoy dal sovraccarico di connessioni e consente di adattare la modellazione del traffico alle esigenze delle applicazioni.

      È possibile configurare le impostazioni del pool di connessioni sul lato di destinazione per un listener gateway virtuale. App Mesh imposta le impostazioni del pool di connessioni lato client su infinite per impostazione predefinita, semplificando la configurazione della mesh.
**Nota**  
I protocolli `connectionPool` e `connectionPool` PortMapping devono essere gli stessi. Se il protocollo del listener è `grpc` o`http2`, specifica solo. `maxRequests` Se il protocollo del listener è`http`, puoi specificare entrambi `maxConnections` e. `maxPendingRequests` 
      + Per **Numero massimo di connessioni**, specificare il numero massimo di connessioni in uscita.
      + Per **Maximum requests**, specifica il numero massimo di richieste parallele che possono essere stabilite con Virtual Gateway Envoy.
      + (Facoltativo) Per il numero **massimo di richieste in sospeso**, specifica il numero di richieste in eccesso dopo il numero **massimo di connessioni** messe in coda da un Envoy. Il valore predefinito è `2147483647`.

   1. **(Facoltativo) Se desideri configurare un controllo sanitario per il tuo listener, seleziona Abilita il controllo dello stato.**

      Una politica di controllo dello stato di salute è facoltativa, ma se si specificano valori per una politica sanitaria, è necessario specificare i valori per **Healthy threshold**, **Health check interval**, **Health check protocol**, **Timeout period** e **Unhealthy** threshold.
      + Per il **protocollo Health check**, scegli un protocollo. Se si seleziona **grpc**, il servizio deve essere conforme al [GRPC Health](https://github.com/grpc/grpc/blob/master/doc/health-checking.md) Checking Protocol.
      + Per **Health check port (Porta del controllo dello stato)**, specificare la porta su cui deve essere eseguito il controllo dello stato.
      + Per **Healthy threshold (Soglia di integrità)**, specificare il numero di controlli dello stato andati a buon fine consecutivi che devono verificarsi prima di dichiarare il listener integro.
      + Per **Health check interval (Intervallo del controllo dello stato)**, specificare il periodo di tempo in millisecondi tra ogni esecuzione del controllo dello stato.
      + Per **Path (Percorso)**, specificare il percorso di destinazione per la richiesta di controllo dello stato. Questo valore viene utilizzato solo se il **protocollo Health check** è `http` o`http2`. Il valore viene ignorato per gli altri protocolli.
      + Per **Periodo di timeout**, specifica il tempo di attesa per ricevere una risposta dal controllo sanitario in millisecondi.
      + Per **Unhealthy threshold (Soglia di mancata integrità)**, specificare il numero di controlli dello stato non andati consecutivamente a buon fine che sono necessari per dichiarare il listener non integro.

   1. **(Facoltativo) Se desideri specificare se i client comunicano con questo gateway virtuale tramite TLS, seleziona Abilita la terminazione TLS.**
      + Per **Modalità**, selezionate la modalità per la quale desiderate che TLS sia configurato sul listener.
      + Per **Metodo Certificate**, selezionate una delle seguenti opzioni. Il certificato deve soddisfare requisiti specifici. Per ulteriori informazioni, consulta [Requisiti del certificato](tls.md#virtual-node-tls-prerequisites).
        + **AWS Certificate Manager hosting**: seleziona un **certificato** esistente.
        + Hosting **Envoy Secret Discovery Service (SDS)**: inserisci il nome del segreto che Envoy recupera utilizzando Secret Discovery Service.
        + **Hosting di file locale**: specifica il percorso della **catena di certificati** e dei file con **chiave privata** sul file system in cui è distribuito Envoy.
      + (Facoltativo) Seleziona **Richiedi certificato client** e una delle opzioni seguenti per abilitare l'autenticazione TLS reciproca se il client fornisce un certificato. Per ulteriori informazioni su Mutual TLS, consulta i documenti di [autenticazione TLS Mutual](https://docs.aws.amazon.com/app-mesh/latest/userguide/mutual-tls.html) App Mesh.
        + Hosting **Envoy Secret Discovery Service (SDS)**: inserisci il nome del segreto che Envoy recupera utilizzando Secret Discovery Service.
        + **Hosting di file locale**: specifica il percorso del file della **catena di certificati** sul file system in cui è distribuito Envoy.
      + (Facoltativo) Inserite un nome alternativo per il **soggetto**. Per aggiungerne altri SANs, seleziona **Aggiungi SAN**. SANs deve essere in formato FQDN o URI.

1. Scegli **Crea gateway virtuale per terminare**.

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

**Per creare un gateway virtuale utilizzando AWS CLI.**

Crea un gateway virtuale utilizzando il seguente comando e inserisci JSON (sostituisci i *red* valori con i tuoi):

1. 

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

1. Contenuto dell'**esempio create-virtual-gateway .json**:

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

1. Output di esempio:

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

Per ulteriori informazioni sulla creazione di un gateway virtuale con AWS CLI for App Mesh, vedere il [create-virtual-gateway](https://docs.aws.amazon.com/cli/latest/reference/appmesh/create-virtual-gateway.html)comando nel AWS CLI riferimento.

------

## Implementa un gateway virtuale
<a name="deploy-virtual-gateway"></a>

[Implementa un servizio Amazon ECS o Kubernetes che contenga solo il contenitore Envoy.](envoy.md) Puoi anche distribuire il contenitore Envoy su un'istanza Amazon. EC2 Per ulteriori informazioni, consulta [Guida introduttiva a App Mesh e Amazon EC2](https://docs.aws.amazon.com/app-mesh/latest/userguide/getting-started-ec2.html). Per ulteriori informazioni su come eseguire la distribuzione su Amazon ECS, consulta [Getting started with App Mesh and Amazon ECS](https://docs.aws.amazon.com/app-mesh/latest/userguide/getting-started-ecs.html) o [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). È necessario impostare la variabile di `APPMESH_RESOURCE_ARN` ambiente su `mesh/mesh-name/virtualGateway/virtual-gateway-name` e non specificare la configurazione del proxy in modo che il traffico del proxy non venga reindirizzato verso se stesso. Per impostazione predefinita, App Mesh utilizza il nome della risorsa specificata in `APPMESH_RESOURCE_ARN` quando Envoy si riferisce a se stesso nei parametri e nelle tracce. È possibile ignorare questo comportamento impostando la variabile di ambiente `APPMESH_RESOURCE_CLUSTER ` con il proprio nome.

Ti consigliamo di distribuire più istanze del contenitore e configurare un Network Load Balancer per bilanciare il carico del traffico verso le istanze. Il nome di rilevamento del servizio del load balancer è il nome che si desidera che i servizi esterni utilizzino per accedere alle risorse presenti nella mesh, ad esempio. *myapp.example.com* Per ulteriori informazioni, consulta [Creazione di un Network Load Balancer](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-network-load-balancer.html) (Amazon ECS), [Creazione di un Load Balancer esterno](https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/) (Kubernetes) o [Tutorial: Aumenta la](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-increase-availability.html) disponibilità della tua applicazione su Amazon. EC2 Puoi anche trovare altri esempi e procedure dettagliate nei nostri esempi di [App](https://docs.aws.amazon.com/app-mesh/latest/userguide/examples.html) Mesh.

Abilita l'autorizzazione proxy per Envoy. Per ulteriori informazioni, consulta [Autorizzazione Envoy Proxy](proxy-authorization.md).

## Eliminazione di un gateway virtuale
<a name="delete-virtual-gateway"></a>

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

**Per eliminare un gateway virtuale 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 gateway virtuale. Vengono elencate tutte le mesh che possiedi e che sono state [condivise](sharing.md) con te.

1. Scegli **Gateway virtuali nella barra** di navigazione a sinistra.

1. Scegli il gateway virtuale che desideri eliminare e seleziona **Elimina**. Non è possibile eliminare un gateway virtuale se ha delle route gateway associate. È necessario prima eliminare tutte le route gateway associate. Puoi eliminare solo un gateway virtuale in cui il tuo account è elencato come **proprietario della risorsa**.

1. Nella casella di conferma, digita **delete** e seleziona **Elimina**.

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

**Per eliminare un gateway virtuale utilizzando il AWS CLI**

1. Utilizza il seguente comando per eliminare il gateway virtuale (sostituisci i *red* valori con i tuoi):

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

1. Output di esempio:

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

Per ulteriori informazioni sull'eliminazione di un gateway virtuale con AWS CLI for App Mesh, vedere il [delete-virtual-gateway](https://docs.aws.amazon.com/cli/latest/reference/appmesh/delete-virtual-gateway.html)comando nel AWS CLI riferimento.

------