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

Servizi virtuali

Un servizio virtuale è un'astrazione di un servizio reale fornita direttamente o indirettamente da un nodo virtuale mediante un router virtuale. I servizi dipendenti chiamano il servizio virtuale mediante il relativo virtualServiceName e tali richieste vengono instradate al nodo virtuale o al router virtuale specificato come provider per il servizio virtuale.

Creazione di un servizio virtuale

AWS Management Console

Per creare un servizio virtuale utilizzando ilAWS Management Console

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

  2. Scegliere la mesh in cui si desidera creare il servizio virtuale. Tutte le maglie che possiedi e che sono statecondivisocon te sei elencato.

  3. Nel riquadro di navigazione sinistro, scegliere Virtual services (Servizi virtuali).

  4. Scegliere Create virtual service (Crea servizio virtuale).

  5. In Virtual service name (Nome servizio virtuale), scegliere un nome per il servizio virtuale. È possibile scegliere qualsiasi nome, tranne il nome di rilevamento del servizio reale a cui si fa riferimento, ad esempiomy-service.default.svc.cluster.local, si consiglia di semplificare la correlazione dei servizi virtuali con servizi reali. In questo modo non hai la necessità di modificare il codice per fare riferimento a un nome diverso da quello attualmente riferito al codice. Il nome specificato deve essere risolto con un indirizzo IP non loopback perché il contenitore dell'app deve essere in grado di risolvere correttamente il nome prima che la richiesta venga inviata al proxy Envoy. È possibile utilizzare qualsiasi indirizzo IP non loopback perché né l'app né i container proxy comunicano con questo indirizzo IP. Il proxy comunica con altri servizi virtuali attraverso i nomi configurati per loro in App Mesh, non tramite indirizzi IP a cui si risolvono i nomi.

  6. Per Provider, scegliere il tipo di provider per il servizio virtuale:

    • Se si desidera che il servizio virtuale distribuisca il traffico su più nodi virtuali, selezionare Virtual router (Router virtuale) e quindi scegliere il router virtuale da utilizzare dal menu a discesa.

    • Se si desidera che il servizio virtuale raggiunga un nodo virtuale direttamente senza router virtuale, selezionareNodo virtualequindi scegliere il nodo virtuale da utilizzare dal menu a discesa.

      Nota

      App Mesh può creare automaticamente un criterio predefinito per i tentativi di instradamento di Envoy per ciascun provider di nodi virtuali definito il 29 luglio 2020 o dopo il 29 luglio 2020, anche se non è possibile definire tale criterio tramite l'API App Mesh. Per ulteriori informazioni, consulta la pagina Policy di ripetimento del percorso predefinito .

    • Se al momento non si desidera che il servizio virtuale instradi il traffico (ad esempio, se il router virtuale o i nodi virtuali non esistono ancora), scegliere None (Nessuno). È possibile aggiornare il provider per questo servizio virtuale in un secondo momento.

  7. Scegliere Create virtual service (Crea servizio virtuale) per terminare.

AWS CLI

Per creare un servizio virtuale utilizzando ilAWS CLI.

Creare un servizio virtuale con un provider di nodi virtuali utilizzando il seguente comando e un file JSON di input (sostituire ilredvalori con i propri valori):

  1. aws appmesh create-virtual-service \ --cli-input-json file://create-virtual-service-virtual-node.json
  2. Contenuto diesempiocreate-virtual-service-virtual-node.json:

    { "meshName": "meshName", "spec": { "provider": { "virtualNode": { "virtualNodeName": "nodeName" } } }, "virtualServiceName": "serviceA.svc.cluster.local" }
  3. Output di esempio:

    { "virtualService": { "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualService/serviceA.svc.cluster.local", "createdAt": "2022-04-06T09:45:35.890000-05:00", "lastUpdatedAt": "2022-04-06T09:45:35.890000-05:00", "meshOwner": "123456789012", "resourceOwner": "210987654321", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 1 }, "spec": { "provider": { "virtualNode": { "virtualNodeName": "nodeName" } } }, "status": { "status": "ACTIVE" }, "virtualServiceName": "serviceA.svc.cluster.local" } }

Per ulteriori informazioni sulla creazione di un servizio virtuale conAWS CLIper App Mesh, consulta lacrea-servizio virtualecomando nelAWS CLIriferimento.

Eliminazione di un servizio virtuale

Nota

Non puoi eliminare un servizio virtuale a cui fa riferimento una route gateway. È necessario prima eliminare il percorso del gateway.

AWS Management Console

Per eliminare un servizio virtuale utilizzando ilAWS Management Console

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

  2. Scegliere la mesh da cui si desidera eliminare un servizio virtuale. Tutte le maglie che possiedi e che sono statecondivisocon te sei elencato.

  3. Nel riquadro di navigazione sinistro, scegliere Virtual services (Servizi virtuali).

  4. Scegliere il servizio virtuale da eliminare e fare clic suEliminanell'angolo in alto a destra. Puoi eliminare solo un gateway virtuale in cui il tuo account è elencato comeProprietario delle risorse.

  5. Nella casella di conferma, digitaredeletee poi clicca suElimina.

AWS CLI

Per eliminare un servizio virtuale utilizzando ilAWS CLI

  1. Utilizzare il seguente comando per eliminare il servizio virtuale (sostituire il servizio virtuale)redvalori con i propri valori):

    aws appmesh delete-virtual-service \ --mesh-name meshName \ --virtual-service-name serviceA.svc.cluster.local
  2. Output di esempio:

    { "virtualService": { "meshName": "meshName", "metadata": { "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualService/serviceA.svc.cluster.local", "createdAt": "2022-04-06T09:45:35.890000-05:00", "lastUpdatedAt": "2022-04-07T10:39:42.772000-05:00", "meshOwner": "123456789012", "resourceOwner": "210987654321", "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "version": 2 }, "spec": { "provider": { "virtualNode": { "virtualNodeName": "nodeName" } } }, "status": { "status": "DELETED" }, "virtualServiceName": "serviceA.svc.cluster.local" } }

Per ulteriori informazioni sull'eliminazione di un servizio virtuale conAWS CLIper App Mesh, consulta ladelete-virtual-servicecomando nelAWS CLIriferimento.