ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

AWS CLI App Mesh list-virtual-routers:列出服务网格中所有虚拟路由器的完整指南

2026/9/14 8:15:57 拓冰建站 浏览量
AWS CLI App Mesh list-virtual-routers:列出服务网格中所有虚拟路由器的完整指南 AWS CLI App Mesh list-virtual-routers列出服务网格中所有虚拟路由器的完整指南【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli本文围绕 AWS CLI 仓库中的 App Mesh 示例文档 list-virtual-routers.rst 展开讲解aws appmesh list-virtual-routers命令的基本用法、输出结构、分页机制与错误处理。读完本文后你将能够正确执行并解读该命令的完整输出、利用--limit/--next-token/--paginator参数完成大规模网格中的资源盘点并理解该命令在仓库 API 模型中的底层映射。1. 命令示例与基本用法list-virtual-routers用于列出指定 App Mesh 服务网格service mesh中的所有虚拟路由器virtual router。仓库中的原始示例非常简洁只需一个必填参数--mesh-nameaws appmesh list-virtual-routers \ --mesh-name app1该示例的输出如下{ virtualRouters: [ { arn: arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualRouter/vrServiceB, meshName: app1, virtualRouterName: vrServiceB } ] }示例输出的arn字段体现了 App Mesh 资源 ARN 的标准格式arn:aws:appmesh:region:account-id:mesh/mesh-name/virtualRouter/virtual-router-name。原始示例只展示了arn、meshName、virtualRouterName三个字段这是简化写法从仓库中的服务模型定义看实际返回的每个虚拟路由器条目还包含创建/更新时间、账户归属和版本号等字段见第 3 节。虚拟路由器在 App Mesh 中的角色它是网格内的流量分发抽象负责将入站流量路由到匹配的虚拟服务virtual service。当网格中存在多个版本的服务实例时虚拟路由器 路由route组合是实现流量切换如蓝绿发布、金丝雀发布的核心手段。要深入理解虚拟路由器的概念可参考仓库同目录下的相关示例create-virtual-router.rst、describe-virtual-router.rst、update-virtual-router.rst。2. 参数详解从 API 模型看取值范围仓库内置的 App Mesh API 模型service-2.json完整定义了ListVirtualRouters操作的输入结构ListVirtualRoutersInput据此可以给出比示例文档更完整的参数说明参数必填说明--mesh-name(string)是要列出虚拟路由器的服务网格名称。模型中该输入结构的required字段明确只包含meshName--limit(integer)否分页时每页返回的最大结果数取值范围1100。设置后仅返回该页结果并附带nextToken响应元素不设置时默认最多返回 100 条结果如有更多结果会返回nextToken--next-token(string)否上一页响应中返回的nextToken值用于获取下一页结果。当没有更多结果时该值为null从服务模型的定义可以看到limit参数在 HTTP 请求中通过查询字符串location: querystring传递其官方文档字符串明确写出This value can be between 1 and 100. If you dont use this parameter, ListVirtualRouters returns up to 100 results and a nextToken value if applicable. 也就是说不显式指定--limit时单页上限同样是 100 条。除上述操作参数外AWS CLI 通用的全局参数也适用于该命令例如--region us-east-1指定目标区域、--profile指定凭证配置、--output text|json控制输出格式等。3. 底层 API 映射HTTP 请求与错误处理ListVirtualRouters在 App Mesh REST API 中的映射同样来自 service-2.json为请求方法GET请求路径/v20190125/meshes/{meshName}/virtualRouters成功状态码200执行aws appmesh list-virtual-routers --mesh-name app1时CLI 实际发起的就是对https://appmesh.region.amazonaws.com/v20190125/meshes/app1/virtualRouters的 GET 请求配合签名与凭证。模型中还列出了该操作可能抛出的六类异常这也是排查命令失败时的重要参照异常常见成因NotFoundException指定的--mesh-name不存在或凭证所在区域中没有该网格BadRequestException请求参数不合法如网格名格式错误TooManyRequestsException请求频率过高被限流ForbiddenException当前 IAM 身份缺少appmesh:ListVirtualRouters权限ServiceUnavailableExceptionApp Mesh 服务端暂不可用InternalServerErrorException服务端内部错误针对前两类错误可先用aws appmesh list-meshes或aws appmesh describe-mesh对应 list-meshes.rst、describe-mesh.rst确认网格名称拼写与所在区域针对权限类错误则需检查 IAM 策略是否授予了对应网格 ARN 的 list 权限。4. 输出字段全解VirtualRouterRef 结构ListVirtualRouters的响应体ListVirtualRoutersOutput包含两个成员virtualRouters必填虚拟路由器条目列表列表元素为VirtualRouterRef结构nextToken可选用于翻页的分页游标无更多结果时为null。从服务模型中VirtualRouterRef的定义看每个条目实际包含以下字段示例文档仅展示了其中三个字段类型说明arnstring虚拟路由器的完整 Amazon 资源名称ARNcreatedAttimestamp资源创建时间Unix epoch 秒lastUpdatedAttimestamp资源最后更新时间Unix epoch 秒meshNamestring虚拟路由器所属的服务网格名称meshOwnerstring网格所有者的 IAM 账户 ID。若不是本账户则说明该网格是其他账户共享过来的resourceOwnerstring资源所有者的 IAM 账户 ID。网格跨账户共享时该值可能是网格所有者或共享目标账户versionlong资源版本号创建时为 1每次更新递增virtualRouterNamestring虚拟路由器名称其中meshOwner与resourceOwner两个字段对跨账户网格共享mesh sharing场景很有意义当你在一个账户里列出另一个账户共享过来的网格中的虚拟路由器时这两个字段可以帮助识别资源的真实归属。5. 分页机制与自动翻页--paginatorApp Mesh 的 API 模型自带完整的分页定义paginators-1.jsonListVirtualRouters的分页配置为ListVirtualRouters: { input_token: nextToken, limit_key: limit, output_token: nextToken, result_key: virtualRouters }这四项配置的含义是请求参数nextToken作为输入游标、limit作为每页大小控制键、响应中的nextToken作为输出游标、响应中的virtualRouters作为结果提取键。由此带来三种使用方式自动翻页推荐AWS CLI 默认启用分页直接执行aws appmesh list-virtual-routers --mesh-name app1时CLI 会自动携带nextToken逐页请求直到取完全部结果后合并输出。因此对于网格内虚拟路由器数量超过 100 的场景无需手动翻页。手动翻页加--no-paginate关闭自动翻页然后手动传递返回的nextToken# 第一页每页 10 条 aws appmesh list-virtual-routers \ --mesh-name app1 \ --limit 10 \ --no-paginate # 用上一页输出中的 nextToken 获取下一页 aws appmesh list-virtual-routers \ --mesh-name app1 \ --limit 10 \ --next-token 上一页返回的nextToken \ --no-paginate自定义翻页行为使用--paginator控制每页大小与最大页数例如--paginator PageSize 50 --paginator MaxItems 200适合只需要前 N 条结果的场景可避免拉取全量数据。6. 实战组合列出后进一步查看与清理拿到虚拟路由器列表后常见后续操作包括查看详情对列表中某个virtualRouterName执行aws appmesh describe-virtual-router --mesh-name app1 --virtual-router-name vrServiceB可看到监听器listener等完整规格对应示例见 describe-virtual-router.rst。删除资源清理不再使用的虚拟路由器时使用aws appmesh delete-virtual-router --mesh-name app1 --virtual-router-name vrServiceB注意删除顺序需先删除其下的路由与虚拟节点引用对应示例见 delete-virtual-router.rst。结合 JSON 处理由于输出是标准 JSON可以管道给jq提取名称列表例如aws appmesh list-virtual-routers --mesh-name app1 --query virtualRouters[].virtualRouterName --output text方便脚本化巡检。与list-virtual-routers平行的还有网格内其他资源的列举命令list-virtual-nodes.rst虚拟节点、list-virtual-services.rst虚拟服务、list-routes.rst路由。它们的分页与输出模式与本文完全一致掌握list-virtual-routers即可举一反三。7. 适用前提与限制说明本指南基于当前仓库中 App Mesh 的2019-01-25版 API 模型该版本是 App Mesh 的正式服务版本仓库中另有一份2018-10-01的早期预览版模型。--mesh-name是唯一必填参数--limit有效范围为 1100不指定--limit时单页默认上限为 100 条。命令要求当前配置的凭证具备 App Mesh 的相应读取权限且网格必须位于默认/指定的 AWS 区域内跨区域需显式指定--region。输出字段以本仓库 API 模型service-2.json为准实际服务响应以 App Mesh 官方文档为准。参考文件原始示例文档list-virtual-routers.rstApp Mesh 服务模型操作定义、输入/输出结构service-2.json分页器配置paginators-1.json相关命令示例create-virtual-router.rst、describe-virtual-router.rst、list-virtual-nodes.rst【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考