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

AWS::AppMesh::Route

创建与虚拟路由器关联的路由。

您可以路由多种不同的协议,并为路由定义重试策略。流量可以路由到一个或多个虚拟节点。

有关路由的更多信息,请参阅路由

语法

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

JSON

{ "Type" : "AWS::AppMesh::Route", "Properties" : { "MeshName" : String, "MeshOwner" : String, "RouteName" : String, "Spec" : RouteSpec, "Tags" : [ Tag, ... ], "VirtualRouterName" : String } }

YAML

Type: AWS::AppMesh::Route Properties: MeshName: String MeshOwner: String RouteName: String Spec: RouteSpec Tags: - Tag VirtualRouterName: String

属性

MeshName

要在其中创建路径的服务网格的名称。

必需:是

类型:字符串

Update requires: Replacement

MeshOwner

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

必需:否

类型:字符串

Update requires: Replacement

RouteName

要用于路由的名称。

必需:是

类型:字符串

Update requires: Replacement

Spec

要应用的路由规范。

必需:是

类型RouteSpec

Update requires: No interruption

Tags

可选元数据,可将它应用于路由来协助分类和组织。每个标签都包含您定义的一个键和一个可选值。标签键的最大字符长度为 128 个字符,标签值的最大长度为 256 个字符。

必需:否

类型Tag 的列表

Update requires: No interruption

VirtualRouterName

要在其中创建路由的虚拟路由器的名称。如果虚拟路由器位于共享网格中,则您必须是虚拟路由器资源的拥有者。

必需:是

类型:字符串

Update requires: Replacement

返回值

Ref

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

{ "Ref": "myRoute" }

在将 AWS::AppMesh::Route 资源的逻辑 ID 传递给内部 Ref 函数时,该函数返回路由 ARN,如 arn:aws:appmesh:us-east-1:555555555555:route/myRoute

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。有关网格共享的更多信息,请参阅使用共享网格

RouteName

路由的名称。

Uid

路由的唯一标识符。

VirtualRouterName

路由所关联的虚拟路由器的名称。

示例

创建路由

此示例创建一个带两个加权目标的路由。

JSON

{ "Description": "Basic Test Route", "Resources": { "BasicRoute": { "Type": "AWS::AppMesh::Route", "Properties": { "RouteName": "TestRoute", "MeshName": null, "VirtualRouterName": null, "Spec": { "HttpRoute": { "Match": { "Prefix": "routePrefix" }, "Action": { "WeightedTargets": [ { "VirtualNode": null, "Weight": 10 }, { "VirtualNode": null, "Weight": 20 } ] } } }, "Tags": [ { "Key": "Key1", "Value": "Value1" }, { "Key": "Key2", "Value": "Value2" } ] } } }, "Outputs": { "RouteName": { "Description": "Name of the Route", "Value": { "Fn::GetAtt": [ "BasicRoute", "RouteName" ] } }, "MeshName": { "Description": "Name of the Mesh", "Value": { "Fn::GetAtt": [ "BasicRoute", "MeshName" ] } }, "VirtualRouterName": { "Description": "Name of the VirtualRouter", "Value": { "Fn::GetAtt": [ "BasicRoute", "VirtualRouterName" ] } }, "Arn": { "Description": "Arn of the Route created", "Value": { "Fn::GetAtt": [ "BasicRoute", "Arn" ] } }, "Uid": { "Description": "Uid of the Route created", "Value": { "Fn::GetAtt": [ "BasicRoute", "Uid" ] } } } }

YAML

Description: "Basic Test Route" Resources: BasicRoute: Type: "AWS::AppMesh::Route" Properties: RouteName: "TestRoute" MeshName: !ImportValue TestMeshName VirtualRouterName: !ImportValue TestVirtualRouterName1 Spec: HttpRoute: Match: Prefix: "routePrefix" Action: WeightedTargets: - VirtualNode: !ImportValue TestVirtualNodeName1 Weight: 10 - VirtualNode: !ImportValue TestVirtualNodeName2 Weight: 20 Tags: - Key: "Key1" Value: "Value1" - Key: "Key2" Value: "Value2" Outputs: RouteName: Description: Name of the Route Value: Fn::GetAtt: - BasicRoute - RouteName MeshName: Description: Name of the Mesh Value: Fn::GetAtt: - BasicRoute - MeshName VirtualRouterName: Description: Name of the VirtualRouter Value: Fn::GetAtt: - BasicRoute - VirtualRouterName Arn: Description: Arn of the Route created Value: Fn::GetAtt: - BasicRoute - Arn Uid: Description: Uid of the Route created Value: Fn::GetAtt: - BasicRoute - Uid

另请参阅

  • AWS App Mesh 用户指南 中的路由

  • AWS App Mesh API 参考 中的 CreateRoute