AWS::AppMesh::VirtualNode - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::AppMesh::VirtualNode

在服务网格中创建虚拟节点。

虚拟节点充当特定任务组的逻辑指针,如 Amazon ECS 服务或 Kubernetes 部署。创建虚拟节点时,可以为任务组指定服务发现信息,以及任务组中运行的代理是否将使用传输层安全性 (TLS) 与其他代理进行通信。

为虚拟节点预期的任何入站流量定义 listener。虚拟节点预期要与之进行通信的任何虚拟服务均指定为 backend

新虚拟节点的响应元数据包含与该虚拟节点关联的 arn。在任务定义或 pod 规范中将此值(完整 ARN 或已截断的资源名称:例如,mesh/default/virtualNode/simpleapp)设置为任务组的 Envoy 代理容器的 APPMESH_VIRTUAL_NODE_NAME 环境变量。它随后将映射到 node.idnode.cluster Envoy 参数。

注意

如果您需要 Envoy 统计数据或跟踪以使用其他名称,则可使用 APPMESH_VIRTUAL_NODE_CLUSTER 环境变量覆盖由 APPMESH_VIRTUAL_NODE_NAME 设置的 node.cluster 值。

有关虚拟节点的更多信息,请参阅虚拟节点

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::AppMesh::VirtualNode", "Properties" : { "MeshName" : String, "MeshOwner" : String, "Spec" : VirtualNodeSpec, "Tags" : [ Tag, ... ], "VirtualNodeName" : String } }

YAML

Type: AWS::AppMesh::VirtualNode Properties: MeshName: String MeshOwner: String Spec: VirtualNodeSpec Tags: - Tag VirtualNodeName: String

属性

MeshName

要在其中创建虚拟节点的服务网格的名称。

必需:是

类型:字符串

Update requires: Replacement

MeshOwner

服务网格拥有者的 AWS IAM 账户 ID。如果该账户 ID 并非您拥有,则所指定的账户必须与您的账户共享网格,然后才能在服务网格中创建资源。有关网格共享的更多信息,请参阅使用共享网格

必需:否

类型:字符串

Update requires: Replacement

Spec

要应用的虚拟节点规范。

必需:是

类型VirtualNodeSpec

Update requires: No interruption

Tags

可选的元数据,您可以将其应用于虚拟节点,以帮助分类和组织。每个标签都包含您定义的一个键和一个可选值。标签键的最大字符长度为 128 个字符,标签值的最大长度为 256 个字符。

必需:否

类型Tag 的列表

Update requires: No interruption

VirtualNodeName

要用于虚拟节点的名称。

必需:是

类型:字符串

Update requires: Replacement

返回值

Ref

在将此资源的逻辑 ID 传递给内部 Ref 函数时,Ref 返回 资源 ARN。例如:

{ "Ref": "myVirtualNode" }

在将 AWS::AppMesh::VirtualNode 资源的逻辑 ID 传递给内部 Ref 函数时,该函数返回虚拟节点 ARN,如 arn:aws:appmesh:us-east-1:555555555555:virtualNode/myVirtualNode

For more information about using the Ref function, see Ref.

Fn::GetAtt

Fn::GetAtt 内部函数返回此类型的一个指定属性的值。以下为可用属性和示例返回值。

有关使用 Fn::GetAtt 内部函数的更多信息,请参阅 Fn::GetAtt

Arn

虚拟节点的完整 Amazon 资源名称 (ARN)。

MeshName

虚拟节点所在的服务网格的名称。

MeshOwner

服务网格拥有者的 AWS IAM 账户 ID。如果该账户 ID 并非您拥有,则它是与您的账户共享网格的账户 ID。有关网格共享的更多信息,请参阅使用共享网格

ResourceOwner

资源拥有者的 AWS IAM 账户 ID。如果该账户 ID 并非您拥有,则它是网格拥有者的 ID,或者是与您共享网格的其他账户的 ID。有关网格共享的更多信息,请参阅使用共享网格

Uid

虚拟节点的唯一标识符。

VirtualNodeName

虚拟节点的名称。

示例

创建虚拟节点

此示例创建一个具有两个后端的虚拟节点和一个具有运行状况检查策略的侦听器。它还将访问日志发送到文件路径并使用 DNS 服务发现。

JSON

{ "Description": "Basic Test Virtual Node", "Resources": { "BasicVirtualNode": { "Type": "AWS::AppMesh::VirtualNode", "Properties": { "VirtualNodeName": "TestVirtualNode", "MeshName": null, "Spec": { "Backends": [ { "VirtualService": { "VirtualServiceName": "Backend_1" } }, { "VirtualService": { "VirtualServiceName": "Backend_2" } } ], "Listeners": [ { "HealthCheck": { "HealthyThreshold": 2, "IntervalMillis": 5000, "Path": "Path", "Port": 8080, "Protocol": "http", "TimeoutMillis": 2000, "UnhealthyThreshold": 2 }, "PortMapping": { "Port": 8080, "Protocol": "http" } } ], "ServiceDiscovery": { "DNS": { "Hostname": "Hostname" } }, "Logging": { "AccessLog": { "File": { "Path": "Path" } } } }, "Tags": [ { "Key": "Key1", "Value": "Value1" }, { "Key": "Key2", "Value": "Value2" } ] } } }, "Outputs": { "VirtualNodeName": { "Description": "Name of the VirtualNode", "Value": { "Fn::GetAtt": [ "BasicVirtualNode", "VirtualNodeName" ] } }, "MeshName": { "Description": "Name of the Mesh", "Value": { "Fn::GetAtt": [ "BasicVirtualNode", "MeshName" ] } }, "Arn": { "Description": "Arn of the VirtualNode created", "Value": { "Fn::GetAtt": [ "BasicVirtualNode", "Arn" ] } }, "Uid": { "Description": "Uid of the VirtualNode created", "Value": { "Fn::GetAtt": [ "BasicVirtualNode", "Uid" ] } } } }

YAML

Description: "Basic Test Virtual Node" Resources: BasicVirtualNode: Type: "AWS::AppMesh::VirtualNode" Properties: VirtualNodeName: "TestVirtualNode" MeshName: !ImportValue TestMeshName Spec: Backends: - VirtualService: VirtualServiceName: "Backend_1" - VirtualService: VirtualServiceName: "Backend_2" Listeners: - HealthCheck: HealthyThreshold: 2 IntervalMillis: 5000 Path: "Path" Port: 8080 Protocol: "http" TimeoutMillis: 2000 UnhealthyThreshold: 2 PortMapping: Port: 8080 Protocol: "http" ServiceDiscovery: DNS: Hostname: "Hostname" Logging: AccessLog: File: Path: "Path" Tags: - Key: "Key1" Value: "Value1" - Key: "Key2" Value: "Value2" Outputs: VirtualNodeName: Description: Name of the VirtualNode Value: Fn::GetAtt: - BasicVirtualNode - VirtualNodeName MeshName: Description: Name of the Mesh Value: Fn::GetAtt: - BasicVirtualNode - MeshName Arn: Description: Arn of the VirtualNode created Value: Fn::GetAtt: - BasicVirtualNode - Arn Uid: Description: Uid of the VirtualNode created Value: Fn::GetAtt: - BasicVirtualNode - Uid

另请参阅