Class CfnVirtualNode
A CloudFormation AWS::AppMesh::VirtualNode
.
Inherited Members
Namespace: Amazon.CDK.AWS.AppMesh
Assembly: Amazon.CDK.AWS.AppMesh.dll
Syntax (csharp)
public class CfnVirtualNode : CfnResource, IConstruct, IDependable, IInspectable
Syntax (vb)
Public Class CfnVirtualNode
Inherits CfnResource
Implements IConstruct, IDependable, IInspectable
Remarks
Creates a virtual node within a service mesh.
A virtual node acts as a logical pointer to a particular task group, such as an Amazon ECS service or a Kubernetes deployment. When you create a virtual node, you can specify the service discovery information for your task group, and whether the proxy running in a task group will communicate with other proxies using Transport Layer Security (TLS).
You define a listener
for any inbound traffic that your virtual node expects. Any virtual service that your virtual node expects to communicate to is specified as a backend
.
The response metadata for your new virtual node contains the arn
that is associated with the virtual node. Set this value to the full ARN; for example, arn:aws:appmesh:us-west-2:123456789012:myMesh/default/virtualNode/myApp
) as the APPMESH_RESOURCE_ARN
environment variable for your task group's Envoy proxy container in your task definition or pod spec. This is then mapped to the node.id
and node.cluster
Envoy parameters.
By default, App Mesh uses the name of the resource you specified in APPMESH_RESOURCE_ARN
when Envoy is referring to itself in metrics and traces. You can override this behavior by setting the APPMESH_RESOURCE_CLUSTER
environment variable with your own name.
For more information about virtual nodes, see Virtual nodes . You must be using 1.15.0
or later of the Envoy image when setting these variables. For more information about App Mesh Envoy variables, see Envoy image in the AWS App Mesh User Guide.
CloudformationResource: AWS::AppMesh::VirtualNode
Link: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appmesh-virtualnode.html
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 cfnVirtualNode = new CfnVirtualNode(this, "MyCfnVirtualNode", new CfnVirtualNodeProps {
MeshName = "meshName",
Spec = 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"
}
}
},
// the properties below are optional
MeshOwner = "meshOwner",
Tags = new [] { new CfnTag {
Key = "key",
Value = "value"
} },
VirtualNodeName = "virtualNodeName"
});
Synopsis
Constructors
CfnVirtualNode(Construct, String, ICfnVirtualNodeProps) | Create a new |
CfnVirtualNode(ByRefValue) | Used by jsii to construct an instance of this class from a Javascript-owned object reference |
CfnVirtualNode(DeputyBase.DeputyProps) | Used by jsii to construct an instance of this class from DeputyProps |
Properties
AttrArn | The full Amazon Resource Name (ARN) for the virtual node. |
AttrMeshName | The name of the service mesh that the virtual node resides in. |
AttrMeshOwner | The AWS IAM account ID of the service mesh owner. |
AttrResourceOwner | The AWS IAM account ID of the resource owner. |
AttrUid | The unique identifier for the virtual node. |
AttrVirtualNodeName | The name of the virtual node. |
CFN_RESOURCE_TYPE_NAME | The CloudFormation resource type name for this resource class. |
CfnProperties | |
MeshName | The name of the service mesh to create the virtual node in. |
MeshOwner | The AWS IAM account ID of the service mesh owner. |
Spec | The virtual node specification to apply. |
Tags | Optional metadata that you can apply to the virtual node to assist with categorization and organization. |
VirtualNodeName | The name to use for the virtual node. |
Methods
Inspect(TreeInspector) | Examines the CloudFormation resource and discloses attributes. |
RenderProperties(IDictionary<String, Object>) |
Constructors
CfnVirtualNode(Construct, String, ICfnVirtualNodeProps)
Create a new AWS::AppMesh::VirtualNode
.
public CfnVirtualNode(Construct scope, string id, ICfnVirtualNodeProps props)
Parameters
- scope Construct
- scope in which this resource is defined.
- id System.String
- scoped id of the resource.
- props ICfnVirtualNodeProps
- resource properties.
CfnVirtualNode(ByRefValue)
Used by jsii to construct an instance of this class from a Javascript-owned object reference
protected CfnVirtualNode(ByRefValue reference)
Parameters
- reference Amazon.JSII.Runtime.Deputy.ByRefValue
The Javascript-owned object reference
CfnVirtualNode(DeputyBase.DeputyProps)
Used by jsii to construct an instance of this class from DeputyProps
protected CfnVirtualNode(DeputyBase.DeputyProps props)
Parameters
- props Amazon.JSII.Runtime.Deputy.DeputyBase.DeputyProps
The deputy props
Properties
AttrArn
The full Amazon Resource Name (ARN) for the virtual node.
public virtual string AttrArn { get; }
Property Value
System.String
Remarks
CloudformationAttribute: Arn
AttrMeshName
The name of the service mesh that the virtual node resides in.
public virtual string AttrMeshName { get; }
Property Value
System.String
Remarks
CloudformationAttribute: MeshName
AttrMeshOwner
The AWS IAM account ID of the service mesh owner.
public virtual string AttrMeshOwner { get; }
Property Value
System.String
Remarks
If the account ID is not your own, then it's the ID of the account that shared the mesh with your account. For more information about mesh sharing, see Working with Shared Meshes .
CloudformationAttribute: MeshOwner
AttrResourceOwner
The AWS IAM account ID of the resource owner.
public virtual string AttrResourceOwner { get; }
Property Value
System.String
Remarks
If the account ID is not your own, then it's the ID of the mesh owner or of another account that the mesh is shared with. For more information about mesh sharing, see Working with Shared Meshes .
CloudformationAttribute: ResourceOwner
AttrUid
The unique identifier for the virtual node.
public virtual string AttrUid { get; }
Property Value
System.String
Remarks
CloudformationAttribute: Uid
AttrVirtualNodeName
The name of the virtual node.
public virtual string AttrVirtualNodeName { get; }
Property Value
System.String
Remarks
CloudformationAttribute: VirtualNodeName
CFN_RESOURCE_TYPE_NAME
The CloudFormation resource type name for this resource class.
public static string CFN_RESOURCE_TYPE_NAME { get; }
Property Value
System.String
CfnProperties
protected override IDictionary<string, object> CfnProperties { get; }
Property Value
System.Collections.Generic.IDictionary<System.String, System.Object>
Overrides
MeshName
The name of the service mesh to create the virtual node in.
public virtual string MeshName { get; set; }
Property Value
System.String
Remarks
MeshOwner
The AWS IAM account ID of the service mesh owner.
public virtual string MeshOwner { get; set; }
Property Value
System.String
Remarks
If the account ID is not your own, then the account that you specify must share the mesh with your account before you can create the resource in the service mesh. For more information about mesh sharing, see Working with shared meshes .
Spec
The virtual node specification to apply.
public virtual object Spec { get; set; }
Property Value
System.Object
Remarks
Tags
Optional metadata that you can apply to the virtual node to assist with categorization and organization.
public virtual TagManager Tags { get; }
Property Value
Remarks
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.
VirtualNodeName
The name to use for the virtual node.
public virtual string VirtualNodeName { get; set; }
Property Value
System.String
Remarks
Methods
Inspect(TreeInspector)
Examines the CloudFormation resource and discloses attributes.
public virtual void Inspect(TreeInspector inspector)
Parameters
- inspector TreeInspector
- tree inspector to collect and process attributes.
RenderProperties(IDictionary<String, Object>)
protected override IDictionary<string, object> RenderProperties(IDictionary<string, object> props)
Parameters
- props System.Collections.Generic.IDictionary<System.String, System.Object>
Returns
System.Collections.Generic.IDictionary<System.String, System.Object>