# VirtualNodeProps

The properties used when creating a new VirtualNode.

Extends: VirtualNodeProps
Extends: VirtualNodeBaseProps
Used as props by: VirtualNode

- Source: [`aws-appmesh/lib/virtual-node.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-appmesh/lib/virtual-node.ts#L103)

## Example

```ts
declare const mesh: appmesh.Mesh;
declare const service: cloudmap.Service;

const node = new appmesh.VirtualNode(this, 'node', {
  mesh,
  serviceDiscovery: appmesh.ServiceDiscovery.cloudMap(service),
  listeners: [appmesh.VirtualNodeListener.http({
    port: 8080,
    healthCheck: appmesh.HealthCheck.http({
      healthyThreshold: 3,
      interval: Duration.seconds(5),
      path: '/ping',
      timeout: Duration.seconds(2),
      unhealthyThreshold: 2,
    }),
    timeout: {
      idle: Duration.seconds(5),
    },
  })],
  backendDefaults: {
    tlsClientPolicy: {
      validation: {
        trust: appmesh.TlsValidationTrust.file('/keys/local_cert_chain.pem'),
      },
    },
  },
  accessLog: appmesh.AccessLog.fromFilePath('/dev/stdout'),
});

cdk.Tags.of(node).add('Environment', 'Dev');
```

## Properties

- `accessLog`: [AccessLog](/cdk/api/v2/docs/aws-cdk-lib.aws_appmesh.AccessLog.html) — Access Logging Configuration for the virtual node.

  **Default:** No access logging

- `backendDefaults`: [BackendDefaults](/cdk/api/v2/docs/aws-cdk-lib.aws_appmesh.BackendDefaults.html) — Default Configuration Virtual Node uses to communicate with Virtual Service.

  **Default:** No Config

- `backends`: [Backend](/cdk/api/v2/docs/aws-cdk-lib.aws_appmesh.Backend.html)[] — Virtual Services that this is node expected to send outbound traffic to.

  **Default:** No backends

- `listeners`: [VirtualNodeListener](/cdk/api/v2/docs/aws-cdk-lib.aws_appmesh.VirtualNodeListener.html)[] — Initial listener for the virtual node.

  **Default:** No listeners

- `mesh`: [IMesh](/cdk/api/v2/docs/aws-cdk-lib.aws_appmesh.IMesh.html) (required) — The Mesh which the VirtualNode belongs to.

- `serviceDiscovery`: [ServiceDiscovery](/cdk/api/v2/docs/aws-cdk-lib.aws_appmesh.ServiceDiscovery.html) — Defines how upstream clients will discover this VirtualNode.

  **Default:** No Service Discovery

- `virtualNodeName`: string — The name of the VirtualNode.

  **Default:** A name is automatically determined
