Class CfnVirtualNode.VirtualNodeSpecProperty
An object that represents the specification of a virtual node.
Inheritance
Implements
Namespace: Amazon.CDK.AWS.AppMesh
Assembly: Amazon.CDK.Lib.dll
Syntax (csharp)
public class VirtualNodeSpecProperty : Object, CfnVirtualNode.IVirtualNodeSpecProperty
Syntax (vb)
Public Class VirtualNodeSpecProperty
Inherits Object
Implements CfnVirtualNode.IVirtualNodeSpecProperty
Remarks
ExampleMetadata: fixture=_generated
Examples
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
using Amazon.CDK.AWS.AppMesh;
var virtualNodeSpecProperty = new VirtualNodeSpecProperty {
BackendDefaults = new BackendDefaultsProperty {
ClientPolicy = new ClientPolicyProperty {
Tls = new ClientPolicyTlsProperty {
Validation = new TlsValidationContextProperty {
Trust = new TlsValidationContextTrustProperty {
Acm = new TlsValidationContextAcmTrustProperty {
CertificateAuthorityArns = new [] { "certificateAuthorityArns" }
},
File = new TlsValidationContextFileTrustProperty {
CertificateChain = "certificateChain"
},
Sds = new TlsValidationContextSdsTrustProperty {
SecretName = "secretName"
}
},
// the properties below are optional
SubjectAlternativeNames = new SubjectAlternativeNamesProperty {
Match = new SubjectAlternativeNameMatchersProperty {
Exact = new [] { "exact" }
}
}
},
// the properties below are optional
Certificate = new ClientTlsCertificateProperty {
File = new ListenerTlsFileCertificateProperty {
CertificateChain = "certificateChain",
PrivateKey = "privateKey"
},
Sds = new ListenerTlsSdsCertificateProperty {
SecretName = "secretName"
}
},
Enforce = false,
Ports = new [] { 123 }
}
}
},
Backends = new [] { new BackendProperty {
VirtualService = new VirtualServiceBackendProperty {
VirtualServiceName = "virtualServiceName",
// the properties below are optional
ClientPolicy = new ClientPolicyProperty {
Tls = new ClientPolicyTlsProperty {
Validation = new TlsValidationContextProperty {
Trust = new TlsValidationContextTrustProperty {
Acm = new TlsValidationContextAcmTrustProperty {
CertificateAuthorityArns = new [] { "certificateAuthorityArns" }
},
File = new TlsValidationContextFileTrustProperty {
CertificateChain = "certificateChain"
},
Sds = new TlsValidationContextSdsTrustProperty {
SecretName = "secretName"
}
},
// the properties below are optional
SubjectAlternativeNames = new SubjectAlternativeNamesProperty {
Match = new SubjectAlternativeNameMatchersProperty {
Exact = new [] { "exact" }
}
}
},
// the properties below are optional
Certificate = new ClientTlsCertificateProperty {
File = new ListenerTlsFileCertificateProperty {
CertificateChain = "certificateChain",
PrivateKey = "privateKey"
},
Sds = new ListenerTlsSdsCertificateProperty {
SecretName = "secretName"
}
},
Enforce = false,
Ports = new [] { 123 }
}
}
}
} },
Listeners = new [] { new ListenerProperty {
PortMapping = new PortMappingProperty {
Port = 123,
Protocol = "protocol"
},
// the properties below are optional
ConnectionPool = new VirtualNodeConnectionPoolProperty {
Grpc = new VirtualNodeGrpcConnectionPoolProperty {
MaxRequests = 123
},
Http = new VirtualNodeHttpConnectionPoolProperty {
MaxConnections = 123,
// the properties below are optional
MaxPendingRequests = 123
},
Http2 = new VirtualNodeHttp2ConnectionPoolProperty {
MaxRequests = 123
},
Tcp = new VirtualNodeTcpConnectionPoolProperty {
MaxConnections = 123
}
},
HealthCheck = new HealthCheckProperty {
HealthyThreshold = 123,
IntervalMillis = 123,
Protocol = "protocol",
TimeoutMillis = 123,
UnhealthyThreshold = 123,
// the properties below are optional
Path = "path",
Port = 123
},
OutlierDetection = new OutlierDetectionProperty {
BaseEjectionDuration = new DurationProperty {
Unit = "unit",
Value = 123
},
Interval = new DurationProperty {
Unit = "unit",
Value = 123
},
MaxEjectionPercent = 123,
MaxServerErrors = 123
},
Timeout = new ListenerTimeoutProperty {
Grpc = new GrpcTimeoutProperty {
Idle = new DurationProperty {
Unit = "unit",
Value = 123
},
PerRequest = new DurationProperty {
Unit = "unit",
Value = 123
}
},
Http = new HttpTimeoutProperty {
Idle = new DurationProperty {
Unit = "unit",
Value = 123
},
PerRequest = new DurationProperty {
Unit = "unit",
Value = 123
}
},
Http2 = new HttpTimeoutProperty {
Idle = new DurationProperty {
Unit = "unit",
Value = 123
},
PerRequest = new DurationProperty {
Unit = "unit",
Value = 123
}
},
Tcp = new TcpTimeoutProperty {
Idle = new DurationProperty {
Unit = "unit",
Value = 123
}
}
},
Tls = new ListenerTlsProperty {
Certificate = new ListenerTlsCertificateProperty {
Acm = new ListenerTlsAcmCertificateProperty {
CertificateArn = "certificateArn"
},
File = new ListenerTlsFileCertificateProperty {
CertificateChain = "certificateChain",
PrivateKey = "privateKey"
},
Sds = new ListenerTlsSdsCertificateProperty {
SecretName = "secretName"
}
},
Mode = "mode",
// the properties below are optional
Validation = new ListenerTlsValidationContextProperty {
Trust = new ListenerTlsValidationContextTrustProperty {
File = new TlsValidationContextFileTrustProperty {
CertificateChain = "certificateChain"
},
Sds = new TlsValidationContextSdsTrustProperty {
SecretName = "secretName"
}
},
// the properties below are optional
SubjectAlternativeNames = new SubjectAlternativeNamesProperty {
Match = new SubjectAlternativeNameMatchersProperty {
Exact = new [] { "exact" }
}
}
}
}
} },
Logging = new LoggingProperty {
AccessLog = new AccessLogProperty {
File = new FileAccessLogProperty {
Path = "path",
// the properties below are optional
Format = new LoggingFormatProperty {
Json = new [] { new JsonFormatRefProperty {
Key = "key",
Value = "value"
} },
Text = "text"
}
}
}
},
ServiceDiscovery = new ServiceDiscoveryProperty {
AwsCloudMap = new AwsCloudMapServiceDiscoveryProperty {
NamespaceName = "namespaceName",
ServiceName = "serviceName",
// the properties below are optional
Attributes = new [] { new AwsCloudMapInstanceAttributeProperty {
Key = "key",
Value = "value"
} },
IpPreference = "ipPreference"
},
Dns = new DnsServiceDiscoveryProperty {
Hostname = "hostname",
// the properties below are optional
IpPreference = "ipPreference",
ResponseType = "responseType"
}
}
};
Synopsis
Constructors
Virtual |
Properties
Backend |
A reference to an object that represents the defaults for backends. |
Backends | The backends that the virtual node is expected to send outbound traffic to. |
Listeners | The listener that the virtual node is expected to receive inbound traffic from. |
Logging | The inbound and outbound access logging information for the virtual node. |
Service |
The service discovery information for the virtual node. |
Constructors
VirtualNodeSpecProperty()
public VirtualNodeSpecProperty()
Properties
BackendDefaults
A reference to an object that represents the defaults for backends.
public object BackendDefaults { get; set; }
Property Value
System.
Remarks
Backends
The backends that the virtual node is expected to send outbound traffic to.
public object Backends { get; set; }
Property Value
System.
Remarks
App Mesh doesn't validate the existence of those virtual services specified in backends. This is to prevent a cyclic dependency between virtual nodes and virtual services creation. Make sure the virtual service name is correct. The virtual service can be created afterwards if it doesn't already exist.
Listeners
The listener that the virtual node is expected to receive inbound traffic from.
public object Listeners { get; set; }
Property Value
System.
Remarks
Logging
The inbound and outbound access logging information for the virtual node.
public object Logging { get; set; }
Property Value
System.
Remarks
ServiceDiscovery
The service discovery information for the virtual node.
public object ServiceDiscovery { get; set; }
Property Value
System.
Remarks
If your virtual node does not expect ingress traffic, you can omit this parameter. If you specify a listener
, then you must specify service discovery information.