

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 虚拟路由器
<a name="virtual_routers"></a>

**重要**  
终止支持通知：2026 年 9 月 30 日， AWS 将停止对的支持。 AWS App Mesh 2026 年 9 月 30 日之后，您将无法再访问 AWS App Mesh 控制台或 AWS App Mesh 资源。有关更多信息，请访问此博客文章[从迁移 AWS App Mesh 到 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

虚拟路由器处理用于您的网格内一个或多个虚拟服务的流量。创建虚拟路由器后，您可以为您的虚拟路由器创建并关联路由，以将传入请求定向至不同的虚拟节点。

![\[Virtual router diagram showing HTTP route with prefix and targets B and B' for different service versions.\]](http://docs.aws.amazon.com/zh_cn/app-mesh/latest/userguide/images/virtual_router.png)


您的虚拟路由器预计的任何入站流量均应指定为*侦听器* 。

## 创建虚拟路由器
<a name="create-virtual-router"></a>

------
#### [ AWS 管理控制台 ]

**要使用创建虚拟路由器 AWS 管理控制台**
**注意**  
创建虚拟路由器时，必须添加带有标签的命名空间选择器，以标识将路由与创建的虚拟路由器关联的命名空间列表。

1. 打开 App Mesh 控制台，网址为[https://console.aws.amazon.com/appmesh/](https://console.aws.amazon.com/appmesh/)。

1. 选择要在其中创建虚拟路由器的网格。列出了您拥有的所有网格以及已与您[共享](sharing.md)的所有网格。

1. 在左侧导航中，选择**虚拟路由器**。

1. 选择**创建虚拟路由器**。

1. 对于**虚拟路由器名称**，为您的虚拟路由器指定一个名称。不得超过 255 个字母、数字、连字符和下划线的组合。

1. （可选）对于**侦听器**，为您的虚拟路由器指定**端口**和**协议**。`http`侦听器允许连接转换到 websockets。您可以单击**添加侦听器**来添加多个侦听器。**移除**按钮将移除该侦听器。

1. 选择**创建虚拟路由器**以完成。

------
#### [ AWS CLI ]

**使用 AWS CLI创建虚拟路由器。**

使用以下命令创建虚拟路由器并输入 JSON（用您自己的*red*值替换值）：

1. 

   ```
   aws appmesh create-virtual-router \
        --cli-input-json file://create-virtual-router.json
   ```

1.  create-virtual-router.json **示例**的内容

1. 

   ```
   {
       "meshName": "meshName",
       "spec": {
           "listeners": [
               {
                   "portMapping": {
                       "port": 80,
                       "protocol": "http"
                   }
               }
           ]
       },
       "virtualRouterName": "routerName"
   }
   ```

1. 输出示例：

   ```
   {
       "virtualRouter": {
           "meshName": "meshName",
           "metadata": {
               "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualRouter/routerName",
               "createdAt": "2022-04-06T11:49:47.216000-05:00",
               "lastUpdatedAt": "2022-04-06T11:49:47.216000-05:00",
               "meshOwner": "123456789012",
               "resourceOwner": "210987654321",
               "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
               "version": 1
           },
           "spec": {
               "listeners": [
                   {
                       "portMapping": {
                           "port": 80,
                           "protocol": "http"
                       }
                   }
               ]
           },
           "status": {
               "status": "ACTIVE"
           },
           "virtualRouterName": "routerName"
       }
   }
   ```

有关使用 for App Mesh 创建虚拟路由器的更多信息，请参阅 AWS CLI 参考中的[create-virtual-router](https://docs.aws.amazon.com/cli/latest/reference/appmesh/create-virtual-router.html)命令。 AWS CLI 

------

## 删除虚拟路由器
<a name="delete-virtual-router"></a>

**注意**  
如果虚拟路由器有任何[路由](routes.md)，或者如果它被指定为任何[虚拟服务的](virtual_services.md)提供商，则无法将其删除。

------
#### [ AWS 管理控制台 ]

**要使用删除虚拟路由器 AWS 管理控制台**

1. 打开 App Mesh 控制台，网址为[https://console.aws.amazon.com/appmesh/](https://console.aws.amazon.com/appmesh/)。

1. 选择要从中删除虚拟路由器的网格。列出了您拥有的所有网格以及已与您[共享](sharing.md)的所有网格。

1. 在左侧导航中，选择**虚拟路由器**。

1. 在**虚拟路由器**表中，选择要删除的虚拟路由器，然后选择右上角的**删除**。要删除虚拟路由器，您的账户 ID 必须列在虚拟路由器的**网格所有****者或资源所有者**列中。

1. 在确认框中，键入 **delete**，然后单击**删除**。

------
#### [ AWS CLI ]

**要使用删除虚拟路由器 AWS CLI**

1. 使用以下命令删除您的虚拟路由器（用您自己的*red*值替换这些值）：

   ```
   aws appmesh delete-virtual-router \
        --mesh-name meshName \
        --virtual-router-name routerName
   ```

1. 输出示例：

   ```
   {
       "virtualRouter": {
           "meshName": "meshName",
           "metadata": {
               "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualRouter/routerName",
               "createdAt": "2022-04-06T11:49:47.216000-05:00",
               "lastUpdatedAt": "2022-04-07T10:49:53.402000-05:00",
               "meshOwner": "123456789012",
               "resourceOwner": "210987654321",
               "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
               "version": 2
           },
           "spec": {
               "listeners": [
                   {
                       "portMapping": {
                           "port": 80,
                           "protocol": "http"
                       }
                   }
               ]
           },
           "status": {
               "status": "DELETED"
           },
           "virtualRouterName": "routerName"
       }
   }
   ```

有关使用 for App Mesh 删除虚拟路由器的更多信息，请参阅 AWS CLI 参考中的[delete-virtual-router](https://docs.aws.amazon.com/cli/latest/reference/appmesh/delete-virtual-router.html)命令。 AWS CLI 

------