ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

AWS CLI 实战:使用 apigatewayv2 delete-vpc-link 删除 HTTP API 的 VPC 链接

AWS CLI 实战:使用 apigatewayv2 delete-vpc-link 删除 HTTP API 的 VPC 链接 AWS CLI 实战使用 apigatewayv2 delete-vpc-link 删除 HTTP API 的 VPC 链接【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli本指南以 AWS CLI 官方示例库中的 delete-vpc-link.rst 为骨架系统讲解如何通过aws apigatewayv2 delete-vpc-link命令删除 HTTP API 的 VPC link并结合当前仓库中的配套示例create / get / update与底层 API 模型service-2.json带你走完 VPC link 从创建、查询、更新到删除的完整生命周期并理解删除操作在协议层的真实语义。命令概览一条命令删除 VPC linkVPC link 是 API Gateway 与用户在 VPC 中部署的私有资源如 ELB、ALB、NLB之间建立私密连接的通道。当某个 HTTP API 的集成不再需要使用 VPC 内的私有端点时就可以用delete-vpc-link将其删除。仓库中的官方示例给出了最简用法aws apigatewayv2 delete-vpc-link \ --vpc-link-id abcd123--vpc-link-id必填参数指定要删除的 VPC link 的唯一 ID即创建时返回的VpcLinkId。命令执行成功后不产生任何标准输出This command produces no output这与该命令的响应模型完全吻合详见下文删除操作在协议层如何工作一节。参数详解唯一必填参数 VpcLinkId从 API 模型看DeleteVpcLink操作的请求结构定义在 service-2.json 的 DeleteVpcLinkRequest 中DeleteVpcLinkRequest: { type: structure, members: { VpcLinkId: { shape: __string, location: uri, locationName: vpcLinkId, documentation: pThe ID of the VPC link./p } }, required: [VpcLinkId] }关键信息如下字段位置必填说明vpc-link-idURI 路径location: urilocationName: vpcLinkId是要删除的 VPC link ID注意location为uri意味着该参数不是以请求体JSON body提交而是拼接进请求路径最终请求对应DELETE /v2/vpclinks/{vpcLinkId}。这也是为什么在 AWS CLI 命令行上必须显式传入--vpc-link-id因为它是该操作唯一的入参。完整实战VPC link 生命周期四步走为了让删除命令在真实环境中有的放矢这里串联仓库中与 VPC link 相关的全部官方示例展示完整生命周期。第一步创建 VPC link参考 create-vpc-link.rst创建时至少要提供名称、子网列表并可指定安全组aws apigatewayv2 create-vpc-link \ --name MyVpcLink \ --subnet-ids subnet-aaaa subnet-bbbb \ --security-group-ids sg1234 sg5678返回结果示例输出{ CreatedDate: 2020-04-07T00:11:46Z, Name: MyVpcLink, SecurityGroupIds: [sg1234, sg5678], SubnetIds: [subnet-aaaa, subnet-bbbb], Tags: {}, VpcLinkId: abcd123, VpcLinkStatus: PENDING, VpcLinkStatusMessage: VPC link is provisioning ENIs, VpcLinkVersion: V2 }VpcLinkId示例中的abcd123就是后续删除命令需要使用的值。第二步查询确认目标删除前建议先用 get-vpc-links.rst 或get-vpc-link核对 ID 与状态aws apigatewayv2 get-vpc-links从示例输出可以看到 VPC link 进入可用状态后的特征VpcLinkStatus: AVAILABLE、VpcLinkStatusMessage: VPC link is ready to route traffic。根据 service-2.json 的 VpcLinkStatus 枚举状态共有PENDING、AVAILABLE、DELETING、FAILED、INACTIVE五种其中DELETING即删除流程进行中的状态。第三步更新可选如果只是改名而不打算删除可参考 update-vpc-link.rstaws apigatewayv2 update-vpc-link \ --vpc-link-id abcd123 \ --name MyUpdatedVpcLink该示例明确提示创建完成后VPC link 的安全组与子网无法再修改只能更新名称等字段。第四步删除aws apigatewayv2 delete-vpc-link \ --vpc-link-id abcd123删除成功后无输出若再次执行get-vpc-links该链接将不再出现在列表中。删除操作在协议层如何工作从源码结构看DeleteVpcLink在 service-2.json 中的定义揭示了三个值得注意的实现细节DeleteVpcLink: { name: DeleteVpcLink, http: { method: DELETE, requestUri: /v2/vpclinks/{vpcLinkId}, responseCode: 202 }, input: { shape: DeleteVpcLinkRequest }, output: { shape: DeleteVpcLinkResponse, documentation: p202 response/p }, errors: [ { shape: NotFoundException, documentation: pThe resource specified in the request was not found./p }, { shape: TooManyRequestsException, documentation: pThe client is sending more than the allowed number of requests per unit of time./p } ], documentation: pDeletes a VPC link./p }HTTP 方法与路径底层走DELETE /v2/vpclinks/{vpcLinkId}是标准 RESTful 资源删除。异步语义202 Accepted成功响应码是202而非200/204表明删除是被接受处理的异步操作而非立即完成的同步删除。这解释了为什么 VPC link 状态枚举中存在DELETING状态——服务端接受删除请求后需要异步释放其背后的弹性网络接口ENI等资源期间链接会处于删除中状态之后才会从查询结果中消失。空响应体DeleteVpcLinkResponse在 service-2.json 中定义为members: {}的空结构。这正是官方示例中命令不产生输出的直接原因——响应模型本身没有任何可序列化的字段。常见错误与排障根据DeleteVpcLink的错误定义该操作可能抛出两类异常CLI 会以非零退出码与 stderr 错误消息呈现异常触发场景排查建议NotFoundException传入的vpc-link-id不存在、已被删除或不属于当前账户用aws apigatewayv2 get-vpc-links复核 ID 拼写与所属区域TooManyRequestsException单位时间内请求数超过 API Gateway 的调用限制采用指数退避重试或降低调用频率另外从 API 模型看该操作没有声明BadRequestException不同于CreateVpcLink说明除上述两类异常外入参层面的校验失败主要以NotFoundException形式呈现例如指向不存在的 ID。若删除操作始终失败建议配合 CloudTrail 中的DeleteVpcLink事件审计调用来源与错误码。小结aws apigatewayv2 delete-vpc-link --vpc-link-id id是一个参数极少、行为明确的管理类命令只接受唯一的--vpc-link-id参数走DELETE /v2/vpclinks/{vpcLinkId}协议以202异步接受删除并以空响应返回。结合仓库中的 create-vpc-link.rst、get-vpc-links.rst 与 update-vpc-link.rst你可以安全地完成 VPC link 从创建到销毁的闭环管理。在自动化脚本如 CI/CD 清理流程中可先通过get-vpc-links解析出目标VpcLinkId再循环调用删除命令并结合返回码判断是否真正清理成功。【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进