Table Of Contents

Feedback

User Guide

First time using the AWS CLI? See the User Guide for help getting started.

[ aws . appmesh ]

create-virtual-service

Description

Creates a virtual service within a service mesh.

A virtual service is an abstraction of a real service that is provided by a virtual node directly or indirectly by means of a virtual router. Dependent services call your virtual service by its virtualServiceName , and those requests are routed to the virtual node or virtual router that is specified as the provider for the virtual service.

See also: AWS API Documentation

See 'aws help' for descriptions of global parameters.

Synopsis

  create-virtual-service
[--client-token <value>]
--mesh-name <value>
--spec <value>
[--tags <value>]
--virtual-service-name <value>
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]

Options

--client-token (string)

Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.

--mesh-name (string)

The name of the service mesh to create the virtual service in.

--spec (structure)

The virtual service specification to apply.

Shorthand Syntax:

provider={virtualNode={virtualNodeName=string},virtualRouter={virtualRouterName=string}}

JSON Syntax:

{
  "provider": {
    "virtualNode": {
      "virtualNodeName": "string"
    },
    "virtualRouter": {
      "virtualRouterName": "string"
    }
  }
}

--tags (list)

Optional metadata that you can apply to the virtual service to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.

Shorthand Syntax:

key=string,value=string ...

JSON Syntax:

[
  {
    "key": "string",
    "value": "string"
  }
  ...
]

--virtual-service-name (string)

The name to use for the virtual service.

--cli-input-json (string) Performs service operation based on the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, the CLI values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally.

--generate-cli-skeleton (string) Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input, prints a sample input JSON that can be used as an argument for --cli-input-json. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command.

See 'aws help' for descriptions of global parameters.

Examples

Example 1: To create a new virtual service with a virtual node provider

The following create-virtual-service example uses a JSON input file to create a virtual service with a virtual node provider.

aws appmesh create-virtual-service \
    --cli-input-json file://create-virtual-service-virtual-node.json

Contents of create-virtual-service-virtual-node.json:

{
    "meshName": "app1",
    "spec": {
        "provider": {
            "virtualNode": {
                "virtualNodeName": "vnServiceA"
            }
        }
    },
    "virtualServiceName": "serviceA.svc.cluster.local"
}

Output:

{
    "virtualService": {
        "meshName": "app1",
        "metadata": {
            "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualService/serviceA.svc.cluster.local",
            "createdAt": 1563810859.474,
            "lastUpdatedAt": 1563810967.179,
            "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
            "version": 2
        },
        "spec": {
            "provider": {
                "virtualNode": {
                    "virtualNodeName": "vnServiceA"
                }
            }
        },
        "status": {
            "status": "ACTIVE"
        },
        "virtualServiceName": "serviceA.svc.cluster.local"
    }
}

For more information, see Virtual Node in the AWS App Mesh User Guide.

Example 2: To create a new virtual service with a virtual router provider

The following create-virtual-service example uses a JSON input file to create a virtual service with a virtual router provider.

aws appmesh create-virtual-service \
    --cli-input-json file://create-virtual-service-virtual-router.json

Contents of create-virtual-service-virtual-router.json:

{
    "meshName": "app1",
    "spec": {
        "provider": {
            "virtualRouter": {
                "virtualRouterName": "vrServiceB"
            }
        }
    },
    "virtualServiceName": "serviceB.svc.cluster.local"
}

Output:

{
    "virtualService": {
        "meshName": "app1",
        "metadata": {
            "arn": "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualService/serviceB.svc.cluster.local",
            "createdAt": 1563908363.999,
            "lastUpdatedAt": 1563908363.999,
            "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
            "version": 1
        },
        "spec": {
            "provider": {
                "virtualRouter": {
                    "virtualRouterName": "vrServiceB"
                }
            }
        },
        "status": {
            "status": "ACTIVE"
        },
        "virtualServiceName": "serviceB.svc.cluster.local"
    }
}

For more information, see `Virtual Services<https://docs.aws.amazon.com/app-mesh/latest/userguide/virtual_services.html>`__ in the AWS App Mesh User Guide

Output

virtualService -> (structure)

The full description of your virtual service following the create call.

meshName -> (string)

The name of the service mesh that the virtual service resides in.

metadata -> (structure)

An object representing metadata for a resource.

arn -> (string)

The full Amazon Resource Name (ARN) for the resource.

createdAt -> (timestamp)

The Unix epoch timestamp in seconds for when the resource was created.

lastUpdatedAt -> (timestamp)

The Unix epoch timestamp in seconds for when the resource was last updated.

uid -> (string)

The unique identifier for the resource.

version -> (long)

The version of the resource. Resources are created at version 1, and this version is incremented each time that they're updated.

spec -> (structure)

The specifications of the virtual service.

provider -> (structure)

The App Mesh object that is acting as the provider for a virtual service. You can specify a single virtual node or virtual router.

virtualNode -> (structure)

The virtual node associated with a virtual service.

virtualNodeName -> (string)

The name of the virtual node that is acting as a service provider.

virtualRouter -> (structure)

The virtual router associated with a virtual service.

virtualRouterName -> (string)

The name of the virtual router that is acting as a service provider.

status -> (structure)

The current status of the virtual service.

status -> (string)

The current status of the virtual service.

virtualServiceName -> (string)

The name of the virtual service.