

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 虛擬路由器
<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_tw/app-mesh/latest/userguide/images/virtual_router.png)


虛擬路由器預期的任何傳入流量都應指定為*接聽程式*。

## 建立虛擬路由器
<a name="create-virtual-router"></a>

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

**使用 建立虛擬路由器 AWS 管理主控台**
**注意**  
建立虛擬路由器時，您必須新增具有標籤的命名空間選擇器，以識別將路由與建立的虛擬路由器建立關聯的命名空間清單。

1. 在 https：//[https://console.aws.amazon.com/appmesh/](https://console.aws.amazon.com/appmesh/) 開啟 App Mesh 主控台。

1. 選擇您要在其中建立虛擬路由器的網格。會列出您擁有和已與您[共用](sharing.md)的所有網格。

1. 在左側導覽中，選擇 **Virtual routers (虛擬路由器)**。

1. 選擇 **Create virtual router (建立虛擬路由器)**。

1. 對於 **Virtual router name (虛擬路由器名稱)**，為您的虛擬路由器指定名稱。最多允許 255 個字母、數字、連字號和底線。

1. （選用） 對於**接聽程式**組態，請為您的虛擬路由器指定**連接埠**和**通訊協定**。`http` 接聽程式允許將連線轉換為 Websocket。您可以按一下**新增接聽程式**來新增多個接聽程式。**移除**按鈕會移除該接聽程式。

1. 選擇 **Create virtual router (建立虛擬路由器)** 以完成。

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

**使用 建立虛擬路由器 AWS CLI。**

使用下列命令和輸入 JSON 建立虛擬路由器 （使用您自己的值取代*紅色*值）：

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"
       }
   }
   ```

如需使用 AWS CLI 適用於 App Mesh 的 建立虛擬路由器的詳細資訊，請參閱 AWS CLI 參考中的 [create-virtual-router](https://docs.aws.amazon.com/cli/latest/reference/appmesh/create-virtual-router.html) 命令。

------

## 刪除虛擬路由器
<a name="delete-virtual-router"></a>

**注意**  
如果虛擬路由器有任何[路由](routes.md)，或指定為任何[虛擬服務的](virtual_services.md)提供者，則無法刪除該虛擬路由器。

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

**使用 刪除虛擬路由器 AWS 管理主控台**

1. 在 https：//[https://console.aws.amazon.com/appmesh/](https://console.aws.amazon.com/appmesh/) 開啟 App Mesh 主控台。

1. 選擇您想要從中刪除虛擬路由器的網格。會列出您擁有和已與您[共用](sharing.md)的所有網格。

1. 在左側導覽中，選擇 **Virtual routers (虛擬路由器)**。

1. 在**虛擬路由器**表格中，選擇您要刪除的虛擬路由器，然後選取右上角的**刪除**。若要刪除虛擬路由器，您的帳戶 ID 必須列在虛擬路由器的**網格擁有者**或**資源擁有者**欄中。

1. 在確認方塊中，輸入 **delete**，然後按一下**刪除**。

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

**使用 刪除虛擬路由器 AWS CLI**

1. 使用下列命令來刪除您的虛擬路由器 （將*紅色*值取代為您自己的值）：

   ```
   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"
       }
   }
   ```

如需使用 AWS CLI 適用於 App Mesh 的 刪除虛擬路由器的詳細資訊，請參閱 AWS CLI 參考中的 [delete-virtual-router](https://docs.aws.amazon.com/cli/latest/reference/appmesh/delete-virtual-router.html) 命令。

------