ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

AWS CLI 删除 App Mesh 虚拟路由器(delete-virtual-router):命令、参数与返回值全解

AWS CLI 删除 App Mesh 虚拟路由器(delete-virtual-router):命令、参数与返回值全解 AWS CLI 删除 App Mesh 虚拟路由器delete-virtual-router命令、参数与返回值全解【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli本文围绕 AWS CLI 的aws appmesh delete-virtual-router命令展开基于 aws-cli 仓库中的官方示例 delete-virtual-router.rst 与 App Mesh 服务模型 service-2.json。读完后你将掌握如何正确调用该命令删除虚拟路由器、各参数的含义与取值位置、删除前的必要前置条件先删路由、返回结构中DELETED状态等关键字段的含义以及删除失败时可能遇到的各类 API 异常。1. 命令示例删除指定虚拟路由器在 AWS App Mesh 中虚拟路由器virtual router是承载路由route的资源单元通常被一个或多个虚拟节点virtual node引用。当服务下线、流量方案调整或需要重建路由配置时就需要删除虚拟路由器。仓库中的官方示例给出了最完整的调用方式aws appmesh delete-virtual-router \ --mesh-name app1 \ --virtual-router-name vrServiceB其中--mesh-name虚拟路由器所属的服务网格名称示例中为app1--virtual-router-name要删除的虚拟路由器名称示例中为vrServiceB。从服务模型 service-2.json 中的DeleteVirtualRouterInput定义看该操作的必填项恰好就是meshName与virtualRouterName两个字段两者都映射到 URI 路径locationName分别为meshName、virtualRouterName此外还有一个可选参数--mesh-owner映射到查询字符串querystring用于跨账户场景——当 mesh 属于其他账户并共享给你的账户时需传入 mesh 所有者的 IAM 账户 ID。删除成功后命令返回被删除虚拟路由器的完整数据VirtualRouterData结构官方示例的完整输出如下{ virtualRouter: { meshName: app1, metadata: { arn: arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualRouter/vrServiceB, createdAt: 1563810546.59, lastUpdatedAt: 1563824253.467, uid: a1b2c3d4-5678-90ab-cdef-11111EXAMPLE, version: 3 }, spec: { listeners: [ { portMapping: { port: 80, protocol: http } } ] }, status: { status: DELETED }, virtualRouterName: vrServiceB } }对照VirtualRouterData的模型定义返回对象的五个必含字段各有明确含义字段模型形状含义meshNameResourceName虚拟路由器所在的服务网格名称metadataResourceMetadata资源元数据含 ARN、创建/更新时间、uid、乐观锁version等specVirtualRouterSpec虚拟路由器规格本例中只有一个监听器listener监听 80 端口的http协议statusVirtualRouterStatus资源当前状态删除操作返回DELETEDvirtualRouterNameResourceName虚拟路由器名称注意metadata.version与uidApp Mesh 资源使用版本化更新机制该输出是删除动作的最终快照可用于审计记录——status.status为DELETED正是判断删除已生效的直接依据。2. 前置条件先删除虚拟路由器上的所有路由服务模型对DeleteVirtualRouter的文档说明非常明确在删除虚拟路由器本身之前必须先删除与之关联的所有路由。这与 App Mesh 的资源层级一致路由挂在虚拟路由器之下route隶属于virtualRouter而虚拟节点又引用虚拟路由器。同目录下的示例 delete-route.rst 恰好演示了同一场景中的路由删除操作使用的是同一个 meshapp1与同一个虚拟路由器vrServiceBaws appmesh delete-route \ --mesh-name app1 \ --virtual-router-name vrServiceB \ --route-name toVnServiceB-weighted其返回结构route对象含httpRoute的weightedTargets、match.prefix等字段也显示status.status为DELETED。因此一个规范的删除顺序是确认关联路由aws appmesh list-routes --mesh-name app1 --virtual-router-name vrServiceB。从 paginators-1.json 看ListRoutes支持nextToken分页路由较多时需配合--next-token逐页取完逐条删除路由对每个路由执行delete-route再删除虚拟路由器执行本文的delete-virtual-router可选验证aws appmesh describe-virtual-router --mesh-name app1 --virtual-router-name vrServiceB应返回NotFoundException。如果跳过第 1、2 步直接删除路由器会命中下文提到的ResourceInUseException异常。3. 底层 API 细节HTTP 映射、幂等性与错误集aws appmesh子命令最终由 botocore 依据内置服务模型发起 REST 调用。从 service-2.json 中DeleteVirtualRouter的定义可以确认HTTP 映射DELETE方法请求路径/v20190125/meshes/{meshName}/virtualRouters/{virtualRouterName}成功响应码 200。也就是说 CLI 参数--mesh-name与--virtual-router-name被直接填入 URL 路径幂等性模型中该操作标记为idempotent: true。重复执行删除同一虚拟路由器不会产生副作用首次删除成功后再次调用会因资源不存在而报NotFoundException这在脚本化清理场景中是重要的容错保障声明的异常集合模型为该操作列出了七种可能返回的错误——NotFoundException、BadRequestException、TooManyRequestsException、ForbiddenException、ResourceInUseException、ServiceUnavailableException、InternalServerErrorException。实际排错时可重点关注三类NotFoundExceptionmesh 名或虚拟路由器名拼写错误或已被删除ResourceInUseException路由器上仍有未删除的路由或虚拟节点仍引用该路由器TooManyRequestsException请求速率超限脚本批量删除时应做退避重试。4. 该示例如何进入 CLI 帮助文档aws-cli 中这类.rst示例并不是孤立的静态文件。从定制模块 addexamples.py 的实现看CLI 在生成每个 API 的帮助文档时会监听doc-examples.*.*事件从examples/service_name/目录下加载对应的 ReST 片段本例即examples/appmesh/delete-virtual-router.rst将手写示例追加到aws appmesh delete-virtual-router help的输出末尾并统一加上示例假定你已配置好 AWS 凭证、遵循 unix 风格引号规则等说明。因此读者在本地执行aws appmesh delete-virtual-router help时看到的使用示例其来源正是本文引用的仓库文件。同目录下还有一整套 App Mesh 生命周期示例可供串联参考创建、查询、更新、删除、标签例如 create-virtual-router.rst、describe-virtual-router.rst、list-virtual-routers.rst、update-virtual-router.rst 与 delete-virtual-service.rst。结合它们可以完整走通网格 → 虚拟路由器 → 路由 → 虚拟节点的创建与回收流程。5. 小结aws appmesh delete-virtual-router是一条幂等的 DELETE 操作核心要点可归纳为参数必填--mesh-name与--virtual-router-name二者映射到 URI 路径跨账户共享 mesh 时补充--mesh-owner顺序删除前必须先清空该路由器下的所有路由否则会触发ResourceInUseException验证返回的virtualRouter对象中status.status DELETED即删除生效metadata中的version、uid、arn可用于审计留痕排错以模型声明的七类异常为对照表优先检查资源名拼写NotFoundException与残留引用ResourceInUseException。【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表