

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

# 虚拟网关
<a name="virtual_gateways"></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)。

虚拟网关允许网格之外的资源与网格内部的资源进行通信。虚拟网关代表在 Amazon ECS 服务、Kubernetes 服务或亚马逊实例上运行的 Envoy 代理。 EC2 与代表运行应用程序的 Envoy 的虚拟节点不同，虚拟网关代表自己部署的 Envoy。

外部资源必须能够将 DNS 名称解析为分配给运行 Envoy 的服务或实例的 IP 地址。然后，Envoy 可以访问网格内部资源的所有 App Mesh 配置。在虚拟网关处理传入请求的配置是使用[网关路由](https://docs.aws.amazon.com/app-mesh/latest/userguide/gateway-routes.html)指定的。

**重要**  
带有 HTTP 或 HTTP2 侦听器的虚拟网关将传入请求的主机名重写为网关路由目标虚拟服务的名称，默认情况下`/`，网关路由中的匹配前缀将重写为。例如，如果您已将网关路由匹配前缀配置为 `/chapter`，如果传入请求是 `/chapter/1`，则请求将被重写为`/1`。要配置重写，请参阅网关路由中的[创建网关路由](https://docs.aws.amazon.com/app-mesh/latest/userguide/gateway-routes.html#create-gateway-route)部分。  
创建虚拟网关时，不应配置`proxyConfiguration` 和 `user`。

要完成演 end-to-end练，请参阅[配置入站网关](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-ingress-gateway)。

## 创建虚拟网关
<a name="create-virtual-gateway"></a>

**注意**  
创建虚拟网关时，必须添加带有标签的命名空间选择器，以标识将网关路由与已创建的虚拟网关关联的命名空间列表。

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

**要使用创建虚拟网关 AWS 管理控制台**

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

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

1. 在左侧导航中选择**虚拟网关**。

1. 选择**创建虚拟网关**。

1. 对于**虚拟网关名称**，请输入虚拟网关的名称。

1. （可选，但建议使用）配置**客户端策略默认值**。

   1. （可选）如果您希望网关仅使用传输层安全性协议（TLS）与虚拟服务通信，请选择强制 **TLS**。

   1. （可选）在**端口**中，指定一个或多个要与虚拟服务执行 TLS 通信的端口。

   1. 对于**验证方法**，选择下列选项之一。您指定的证书必须已经存在且符合特定要求。有关更多信息，请参阅 [证书要求](tls.md#virtual-node-tls-prerequisites)。
      + **AWS 私有证书颁发机构**托管 - 选择一个或多个现有**证书**。
      + **Envoy 密钥发现服务 (SDS)** 托管 – 输入 Envoy 使用密钥发现服务获取的密钥名称。
      + **本地文件托管** - 指定 Envoy 部署所在文件系统上的**证书链**文件的路径。

   1. （可选）输入**主题备用名称**。要添加其他内容 SANs，请选择**添加 SAN**。 SANs 必须采用 FQDN 或 URI 格式。

   1. （可选）选择**提供客户端证书**和以下选项之一，以便在服务器请求客户端证书时提供该证书并启用双向 TLS 身份验证。要了解有关双向 TLS 的更多信息，请参阅 App Mesh [双向 TLS 身份验证](https://docs.aws.amazon.com/app-mesh/latest/userguide/mutual-tls.html)文档。
      + **Envoy 密钥发现服务 (SDS)** 托管 – 输入 Envoy 使用密钥发现服务获取的密钥名称。
      + **本地文件托管** - 指定 Envoy 部署所在文件系统上的**证书链**文件和**私钥**的路径。有关使用本地文件加密的示例应用程序部署网格的完整演练，请参阅使用[文件提供的 TLS 证书配置 TLS](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-tls-file-provided) GitHub。 end-to-end

1. （可选）要配置日志记录，请选择**日志记录**。输入您希望 Envoy 要使用的 **HTTP 访问日志路径**。我们推荐使用该`/dev/stdout`路径，以便您可以使用 Docker 日志驱动程序将您的 Envoy 日志导出到诸如 Amazon Lo CloudWatch gs 之类的服务。
**注意**  
日志必须仍由您应用程序中的代理进行接收并发送至目标。此文件路径仅指示 Envoy 要发送日志的位置。

1. 配置**侦听器**。

   1. 选择**协议**并指定 Envoy 侦听流量的**端口**。**http** 侦听器允许连接转换到 websockets。您可以单击**添加侦听器**来添加多个侦听器。**移除**按钮将移除该侦听器。

   1. （可选）**启用连接池** 

      连接池限制了虚拟网关 Envoy 可以同时建立的连接数量。它旨在保护您的 Envoy 实例免受连接不堪重负，并允许您根据应用程序的需求调整流量整形。

      您可以为虚拟网关侦听器配置目标端连接池设置。App Mesh 默认将客户端连接池设置为无限，从而简化了网格配置。
**注意**  
`connectionPool` 和 `connectionPool` PortMapping 协议必须相同。如果您的侦听器协议为 `grpc` 或 `http2`，则仅指定 `maxRequests`。如果您的侦听器协议为 `http`，则可以同时指定 `maxConnections` 和 `maxPendingRequests`。
      + 对于**最大连接数**，请指定最大出站连接数。
      + 对于**最大请求数**，指定可与虚拟网关 Envoy 建立的最大并行请求数。
      + （可选）在**最大待处理请求数**中，指定在达到**最大连接数**之后，Envoy 队列中排列的溢出请求数。默认值为 `2147483647`。

   1. （可选）如果要为侦听器配置运行状况检查，请选择**启用运行状况检查**。

      运行状况检查策略是可选的，但是如果您为运行状况策略指定任何值，则必须为**正常阈值、运行状况****检查间隔、运行状况检查****协议**、**超时时间**和**运行状况不佳阈值**指定值。
      + 对于 **运行状况检查协议**，请选择一个协议。如果选择 **grpc**，您的服务必须符合 [GRPC 运行状况检查协议](https://github.com/grpc/grpc/blob/master/doc/health-checking.md)。
      + 对于**运行状况检查端口**，指定应对其运行状况检查的端口。
      + 对于**正常阈值**，指定在声明侦听器运行状况良好之前，必须出现的连续成功的运行状况检查次数。
      + 对于**运行状况检查间隔**，指定执行每次运行状况检查间隔的时间（毫秒）。
      + 对于**路径**，指定运行状况检查请求的目标路径。仅当**运行状况检查协议**为 `http` 或 `http2` 时才使用此值。对于其他协议，该值将被忽略。
      + 对于**超时周期**，指定接收来自运行状况检查的响应时要等待的时间（毫秒）。
      + 对于**不正常阈值**，指定在声明侦听器运行状况不正常之前，必须出现的连续失败的运行状况检查次数。

   1. （可选）如果要指定客户端是否使用 TLS 与此虚拟网关通信，请选择**启用 TLS 终止**。
      + 对于**模式**，选择要在侦听器上配置 TLS 的模式。
      + 对于 **Certificate method**，执行下列操作之一：证书必须满足具体要求。有关更多信息，请参阅 [证书要求](tls.md#virtual-node-tls-prerequisites)。
        + **AWS Certificate Manager 托管**-选择现有**证书**。
        + **Envoy 密钥发现服务 (SDS)** 托管 – 输入 Envoy 使用密钥发现服务获取的密钥名称。
        + **本地文件托管** - 指定 Envoy 部署所在文件系统上的**证书链**和**私钥**文件的路径。
      + （可选）如果客户端提供证书，请选择**需要客户端证书**和以下选项之一，以启用双向 TLS 身份验证。要了解有关双向 TLS 的更多信息，请参阅 App Mesh [双向 TLS 身份验证](https://docs.aws.amazon.com/app-mesh/latest/userguide/mutual-tls.html)文档。
        + **Envoy 密钥发现服务 (SDS)** 托管 – 输入 Envoy 使用密钥发现服务获取的密钥名称。
        + **本地文件托管** - 指定 Envoy 部署所在文件系统上的**证书链**文件的路径。
      + （可选）输入**主题备用名称**。要添加其他内容 SANs，请选择**添加 SAN**。 SANs 必须采用 FQDN 或 URI 格式。

1. 选择**创建虚拟网关**以完成。

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

**使用 AWS CLI创建虚拟网关。**

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

1. 

   ```
   aws appmesh create-virtual-gateway \ 
   --mesh-name meshName \ 
   --virtual-gateway-name virtualGatewayName \ 
   --cli-input-json file://create-virtual-gateway.json
   ```

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

   ```
   {
       "spec": {
         "listeners": [
           {
             "portMapping": {
               "port": 9080,
               "protocol": "http"
             }
           }
         ]
       }
   }
   ```

1. 输出示例：

   ```
   {
       "virtualGateway": {
           "meshName": "meshName",
           "metadata": {
               "arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/meshName/virtualGateway/virtualGatewayName",
               "createdAt": "2022-04-06T10:42:42.015000-05:00",
               "lastUpdatedAt": "2022-04-06T10:42:42.015000-05:00",
               "meshOwner": "123456789012",
               "resourceOwner": "123456789012",
               "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
               "version": 1
           },
           "spec": {
               "listeners": [
                   {
                       "portMapping": {
                           "port": 9080,
                           "protocol": "http"
                       }
                   }
               ]
           },
           "status": {
               "status": "ACTIVE"
           },
           "virtualGatewayName": "virtualGatewayName"
       }
   }
   ```

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

------

## 部署虚拟网关
<a name="deploy-virtual-gateway"></a>

部署仅包含 [Envoy 容器](envoy.md)的亚马逊 ECS 或 Kubernetes 服务。您也可以在亚马逊 EC2实例上部署 Envoy 容器。有关更多信息，请参阅 [App Mesh 和亚马逊入门 EC2](https://docs.aws.amazon.com/app-mesh/latest/userguide/getting-started-ec2.html)。有关如何在 Amazon ECS 上部署的更多信息，请参阅[《App Mesh 和 Amazon ECS入门》](https://docs.aws.amazon.com/app-mesh/latest/userguide/getting-started-ecs.html)或[《部署到 Kubernetes 的 AWS App Mesh 和 Kubernetes 入门》](https://docs.aws.amazon.com/app-mesh/latest/userguide/getting-started-kubernetes.html)。您需要将 `APPMESH_RESOURCE_ARN` 环境变量设置为 `mesh/mesh-name/virtualGateway/virtual-gateway-name`，并且不得指定代理配置，这样代理的流量就不会被重定向到自身。默认情况下，当 Envoy 在指标和跟踪中引用自身时，App Mesh 使用您在 `APPMESH_RESOURCE_ARN` 中指定的资源的名称。您可以通过使用自己的名称设置 `APPMESH_RESOURCE_CLUSTER ` 环境变量来覆盖此行为。

我们建议您部署容器的多个实例，并设置网络负载均衡器来对这些实例的流量进行负载均衡。负载均衡器的服务发现名称是您希望外部服务用来访问网格中资源的名称，例如*myapp.example.com*。有关更多信息，请参阅[创建网络负载均衡器](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-network-load-balancer.html) (Amazon ECS)、[创建外部负载均衡器](https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/) (Kubernetes) 或[教程：提高应用程序在亚马逊上的可用性](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-increase-availability.html)。 EC2您还可以在我们的 [App Mesh 示例中找到更多示例](https://docs.aws.amazon.com/app-mesh/latest/userguide/examples.html)和演练。

为 Envoy 启用代理授权。有关更多信息，请参阅 [Envoy Proxy 授权](proxy-authorization.md)。

## 删除虚拟网关
<a name="delete-virtual-gateway"></a>

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

**要删除虚拟网关，请使用 AWS 管理控制台**

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

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

1. 在左侧导航中选择**虚拟网关**。

1. 选择要删除的虚拟网关，然后选择**删除**。如果虚拟网关有任何关联的网关路由，则无法将其删除。必须先删除所有关联的网关路由。您只能删除您的账户被列为**资源所有者的**虚拟网关。

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

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

**要删除虚拟网关，请使用 AWS CLI**

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

   ```
   aws appmesh delete-virtual-gateway \
        --mesh-name meshName \
        --virtual-gateway-name virtualGatewayName
   ```

1. 输出示例：

   ```
   {
       "virtualGateway": {
           "meshName": "meshName",
           "metadata": {
               "arn": "arn:aws:appmesh:us-west-2:123456789012:mesh/meshName/virtualGateway/virtualGatewayName",
               "createdAt": "2022-04-06T10:42:42.015000-05:00",
               "lastUpdatedAt": "2022-04-07T10:57:22.638000-05:00",
               "meshOwner": "123456789012",
               "resourceOwner": "123456789012",
               "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
               "version": 2
           },
           "spec": {
               "listeners": [
                   {
                       "portMapping": {
                           "port": 9080,
                           "protocol": "http"
                       }
                   }
               ]
           },
           "status": {
               "status": "DELETED"
           },
           "virtualGatewayName": "virtualGatewayName"
       }
   }
   ```

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

------

# 网关路由
<a name="gateway-routes"></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)。

网关路由附加到虚拟网关，并将流量路由到现有虚拟服务。如果路由与请求匹配，它可以将流量分配到目标虚拟服务。本主题可帮助您处理服务网格中的网关路由。

## 创建网关路由
<a name="create-gateway-route"></a>

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

**要使用创建网关路由 AWS 管理控制台**

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

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

1. 在左侧导航中选择**虚拟网关**。

1. 选择要与新网关路由关联的虚拟网关。如果没有列出任何网关，则需要先[创建一个虚拟网关](virtual_gateways.md#create-virtual-gateway)。您只能为您的账户列为**资源所有者的**虚拟网关创建网关路由。

1. 在**网关路由**表中，选择**创建网关路由**。

1. 对于**网关路由名称**，指定要用于您网关路由的名称。

1. **对于**网关路由类型**，请选择 **http**、**http2** 或 grpc。**

1. 选择现有的**虚拟服务名称**。如果没有列出任何虚拟服务，则需要先创建一个[虚拟服务](virtual_services.md#create-virtual-service)列表。

1. 为**虚拟服务提供商端口选择与目标相对应的端口**。当**所选虚拟服务的提供商（路由器或节点）有多个侦听器时，需要**使用虚拟服务提供商端口。

1. （可选）在**优先级**中，指定此网关路由的优先级。

1. 对于**匹配**配置，请指定：
   + 

     如果所选类型为 **http/http2**：
     + （可选）**方法** ‐ 指定要在传入的 **http**/**http2** 请求中匹配的方法标头。
     + （可选）**端口匹配** - 匹配传入流量的端口。如果此虚拟网关有多个侦听器，则**需要**匹配端口。
     + （可选）**精确/后缀主机名** - 指定在路由到目标虚拟服务的传入请求上应匹配的主机名。
     + （可选）**Prefix/Exact/Regex路径**-匹配网址路径的方法。
       + **前缀匹配** - 默认情况下，网关路由的匹配请求将重写为目标虚拟服务的名称，匹配的前缀将重写为 `/`。根据您配置虚拟服务的方式，它可能会使用虚拟路由器根据特定的前缀或标头将请求路由到不同的虚拟节点。
**重要**  
您不能为**前缀匹配**指定 `/aws-appmesh*` 或 `/aws-app-mesh*`。这些前缀保留供将来的 App Mesh 内部使用。
如果定义了多条网关路由，则会将请求与前缀最长的路由相匹配。例如，如果存在两条网关路由，其中一条的前缀为 `/chapter`，一条的前缀为 `/`，则请求 `www.example.com/chapter/` 将带 `/chapter` 前缀的网关路由进行匹配。
**注意**  
如果您启用基于**路径**/**前缀**的匹配，App Mesh 会启用路径标准[化（normalize\$1path 和 [merge\$1slashes](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-merge-slashes)），以最大限度地减少出现路径](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-normalize-path)混淆漏洞的可能性。  
当参与请求的各方使用不同的路径表示形式时，就会出现路径混淆漏洞。
       + **精确匹配** - exact 参数禁用路径的部分匹配，并确保只有当路径与当前 URL **完全**匹配时，它才会返回路由。
       + **正则表达式匹配** ——用于描述多个模式实际上 URLs 可以识别网站上的单个页面。
     + （可选）**查询参数** - 此字段允许您匹配查询参数。
     + （可选）**标头** ‐ 指定** http** 和 **http2** 的标头。它应该与传入的请求相匹配，以路由到目标虚拟服务。
   + 

     如果选择了 **grpc** 类型：
     + **主机名匹配类型**和（可选）**精确/后缀匹配** - 指定在路由到目标虚拟服务的传入请求上应匹配的主机名。
     + **grpc 服务名称** —— **grpc** 服务充当应用程序的 API，定义为。 ProtoBuf
**重要**  
您不能为**服务名称**指定 `/aws.app-mesh*` 或 `aws.appmesh`。这些服务名称保留供将来 App Mesh 内部使用。
     + （可选）**元数据** - 指定 **grpc** 的元数据。它应该与传入的请求相匹配，以路由到目标虚拟服务。

1. （可选）对于**重写**配置：
   + 

     如果所选类型为** http/http2**：
     + 

       如果 **前缀** 是选定的匹配类型：
       + **覆盖主机名的自动重写** - 默认情况下，主机名将重写为目标虚拟服务的名称。
       + **覆盖前缀的自动重写** - 开启后，** Prefix rewrite **会指定重写前缀的值。
     + 

       如果**精确路径**是选定的匹配类型：
       + **覆盖主机名的自动重写** - 默认情况下，主机名将重写为目标虚拟服务的名称。
       + **路径重写** - 指定重写路径的值。没有默认路径。
     + 

       如果**正则表达式路径**是选定的匹配类型：
       + **覆盖主机名的自动重写** - 默认情况下，主机名将重写为目标虚拟服务的名称。
       + **路径重写** - 指定重写路径的值。没有默认路径。
   + 

     如果选择了 **grpc** 类型：
     + **覆盖主机名的自动重写** - 默认情况下，主机名将重写为目标虚拟服务的名称。

1. 选择**创建网关路由**以完成。

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

**使用 AWS CLI创建网关路由。**

使用以下命令创建网关路由，然后输入 JSON（用您自己的*red*值替换值）：

1. 

   ```
   aws appmesh create-virtual-gateway \ 
   --mesh-name meshName \ 
   --virtual-gateway-name virtualGatewayName \
   --gateway-route-name gatewayRouteName \ 
   --cli-input-json file://create-gateway-route.json
   ```

1.  create-gateway-route.json **示例**的内容：

   ```
   {
       "spec": {
           "httpRoute" : {
               "match" : {
                   "prefix" : "/"
               },
               "action" : {
                   "target" : {
                       "virtualService": {
                           "virtualServiceName": "serviceA.svc.cluster.local"
                       }
                   }
               }
           }
       }
   }
   ```

1. 输出示例：

   ```
   {
       "gatewayRoute": {
           "gatewayRouteName": "gatewayRouteName",
           "meshName": "meshName",
           "metadata": {
               "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualGateway/virtualGatewayName/gatewayRoute/gatewayRouteName",
               "createdAt": "2022-04-06T11:05:32.100000-05:00",
               "lastUpdatedAt": "2022-04-06T11:05:32.100000-05:00",
               "meshOwner": "123456789012",
               "resourceOwner": "210987654321",
               "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
               "version": 1
           },
           "spec": {
               "httpRoute": {
                   "action": {
                       "target": {
                           "virtualService": {
                               "virtualServiceName": "serviceA.svc.cluster.local"
                           }
                       }
                   },
                   "match": {
                       "prefix": "/"
                   }
               }
           },
           "status": {
               "status": "ACTIVE"
           },
           "virtualGatewayName": "gatewayName"
       }
   }
   ```

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

------

## 删除网关路由
<a name="delete-gateway-route"></a>

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

**要使用删除网关路由 AWS 管理控制台**

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

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

1. 在左侧导航中选择**虚拟网关**。

1. 选择要从中删除网关路由的虚拟网关。

1. 在**网关路由**表中，选择要删除的网关路由，然后选择**删除**。只有当您的账户被列为**资源所有者**时，您才能删除网关路由。

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

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

**要使用删除网关路由 AWS CLI**

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

   ```
   aws appmesh delete-gateway-route \
        --mesh-name meshName \
        --virtual-gateway-name virtualGatewayName \
        --gateway-route-name gatewayRouteName
   ```

1. 输出示例：

   ```
   {
       "gatewayRoute": {
           "gatewayRouteName": "gatewayRouteName",
           "meshName": "meshName",
           "metadata": {
               "arn": "arn:aws:appmesh:us-west-2:210987654321:mesh/meshName/virtualGateway/virtualGatewayName/gatewayRoute/gatewayRouteName",
               "createdAt": "2022-04-06T11:05:32.100000-05:00",
               "lastUpdatedAt": "2022-04-07T10:36:33.191000-05:00",
               "meshOwner": "123456789012",
               "resourceOwner": "210987654321",
               "uid": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE",
               "version": 2
           },
           "spec": {
               "httpRoute": {
                   "action": {
                       "target": {
                           "virtualService": {
                               "virtualServiceName": "serviceA.svc.cluster.local"
                           }
                       }
                   },
                   "match": {
                       "prefix": "/"
                   }
               }
           },
           "status": {
               "status": "DELETED"
           },
           "virtualGatewayName": "virtualGatewayName"
       }
   }
   ```

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

------