Servicios virtuales - AWS App Mesh

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Servicios virtuales

Un servicio virtual es una abstracción de un servicio real que se proporcionan mediante un nodo virtual directa o indirectamente a través de un router virtual. Los servicios dependientes llaman al servicio virtual por su virtualServiceName y dichas solicitudes se dirigen al nodo virtual o router virtual que se especifica como el proveedor del servicio virtual.

Creación de un servicio virtual

AWS Management Console
Para crear un servicio virtual mediante la AWS Management Console
  1. Abra la consola de App Mesh en https://console.aws.amazon.com/appmesh/.

  2. Elija la malla en la que desea crear el servicio virtual. Se muestran todas las mallas que son de su propiedad y que se han compartido con usted.

  3. Elija Virtual services (Servicios virtuales) en el panel de navegación izquierdo.

  4. Elija Create Virtual service (Crear servicio virtual).

  5. En Virtual service name (Nombre del servicio virtual), seleccione un nombre para el servicio virtual. Puede elegir cualquier nombre, pero se recomienda usar el nombre de detección de servicios del servicio real de destino, por ejemplo my-service.default.svc.cluster.local, para que sea más fácil correlacionar sus servicios virtuales con los servicios reales. De esta manera, no es necesario cambiar el código para hacer referencia a un nombre diferente al que se refiere actualmente. El nombre que especifique debe ser una dirección IP que no sea de bucle invertido, porque el contenedor de aplicaciones debe poder resolver correctamente el nombre antes de enviar la solicitud al proxy de Envoy. Puede usar cualquier dirección IP que no sea de bucle invertido, porque ni la aplicación ni los contenedores del proxy se comunican con esta dirección IP. El proxy se comunica con otros servicios virtuales a través de los nombres configurados para ellos en App Mesh, no a través de las direcciones IP que resuelven los nombres.

  6. En Provider (Proveedor), elija el tipo de proveedor de su servicio virtual:

    • Si desea que el servicio virtual propague tráfico por varios nodos virtuales, seleccione Virtual router (Router virtual) y elija el router virtual que usará en el menú desplegable.

    • Si desea que el servicio virtual alcance un nodo virtual directamente sin un enrutador virtual, seleccione Nodo virtual y elija el nodo virtual que desea usar en el menú desplegable.

      nota

      App Mesh puede crear automáticamente una política predeterminada de reintentos de ruta de Envoy para cada proveedor de nodos virtuales que defina a partir del 29 de julio de 2020, aunque no pueda definir dicha política a través de la API de App Mesh. Para obtener más información, consulte Política de reintentos de ruta predeterminada.

    • Si no desea que el servicio virtual dirija el tráfico en este momento (por ejemplo, si los nodos virtuales o routers virtuales todavía no existen), seleccione None (Ninguno). Puede actualizar el proveedor para este servicio virtual más adelante.

  7. Elija Create virtual service (Crear servicio virtual) para finalizar.

AWS CLI

Para crear un servicio virtual mediante la AWS CLI.

Cree un servicio virtual mediante un proveedor de nodos virtuales mediante el siguiente comando y un archivo JSON de entrada (sustituya los valores rojos por los suyos):

  1. aws appmesh create-virtual-service \ --cli-input-json file://create-virtual-service-virtual-node.json
  2. Contenido del ejemplo create-virtual-service-virtual-node.json:

    { "meshName": "meshName", "spec": { "provider": { "virtualNode": { "virtualNodeName": "nodeName" } } }, "virtualServiceName": "serviceA.svc.cluster.local" }
  3. Ejemplo de resultados:

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

Para obtener más información sobre cómo crear un servicio virtual mediante la AWS CLI de App Mesh, consulte el comando create-virtual-service en la referencia de la AWS CLI.

Eliminación de un servicio virtual

nota

No se puede eliminar un servicio virtual al que hace referencia una ruta de puerta de enlace. Primero debe eliminar la ruta de la puerta de enlace.

AWS Management Console
Para eliminar un servicio virtual mediante la AWS Management Console
  1. Abra la consola de App Mesh en https://console.aws.amazon.com/appmesh/.

  2. Elija la malla en la que desee eliminar un servicio virtual. Se muestran todas las mallas que son de su propiedad y que se han compartido con usted.

  3. Elija Virtual services (Servicios virtuales) en el panel de navegación izquierdo.

  4. Elija el servicio virtual que desee eliminar y haga clic en Eliminar en la esquina superior derecha. Solo puede eliminar una puerta de enlace virtual en la que su cuenta aparezca como propietaria del recurso.

  5. En el cuadro de confirmación, escriba delete y, a continuación, haga clic en Eliminar.

AWS CLI
Para eliminar un servicio virtual mediante la AWS CLI
  1. Use el siguiente comando para eliminar su servicio virtual (sustituya los valores rojos por los suyos):

    aws appmesh delete-virtual-service \ --mesh-name meshName \ --virtual-service-name serviceA.svc.cluster.local
  2. Ejemplo de resultados:

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

Para obtener más información sobre cómo eliminar un servicio virtual con la AWS CLI para App Mesh, consulte el comando delete-virtual-service en la referencia de la AWS CLI.