拓冰建站拓冰建站
首页 / 资讯中心 / 正文

aws-cli 实战:使用 `aws apigateway delete-resource` 删除 API Gateway 资源

aws-cli 实战使用aws apigateway delete-resource删除 API Gateway 资源【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli导读在 Amazon API Gateway 中REST API 由一棵层级化的“资源Resource”树构成每个资源对应一个 URL 路径片段pathPart例如/users/{id}。当某个资源不再需要时比如接口下线、重构路径结构、清理测试数据你需要通过 AWS CLI 将其删除。本篇指南以当前仓库中的官方示例文档 delete-resource.rst 为核心完整讲解aws apigateway delete-resource命令的语法、必需参数、底层 HTTP 调用细节、与get-resources/create-resource/update-resource的配合用法以及删除资源时需要特别注意的级联行为。读完本文你将能安全、准确地在命令行中完成 API 资源的删除与路径结构调整。一、命令概览一句话删除一个资源官方示例文档给出了删除资源的最简形式aws apigateway delete-resource --rest-api-id 1234123412 --resource-id a1b2c3这个命令只有两个必需参数参数类型必填说明--rest-api-idString是目标 REST API 的标识符即创建create-rest-api时返回的 ID如1234123412--resource-idString是要删除的资源的标识符如a1b2c3该命令没有输出成功时静默返回。删除后对应的 URL 路径即从 API 中移除客户端将无法再通过该路径调用 API。底层 REST 调用根据服务模型文件 awscli/botocore/data/apigateway/2015-07-09/service-2.json 的定义DeleteResource操作对应的底层 HTTP 请求为DELETE /restapis/{restapi_id}/resources/{resource_id}请求成功返回 HTTP 状态码202 Accepted异步处理。可以看到--rest-api-id和--resource-id分别对应 URL 路径中的restapi_id与resource_id两个路径参数location: uri这一点在请求结构DeleteResourceRequest中有明确声明见 service-2.json。也就是说CLI 会把这两个参数直接嵌入 URL而不是放入请求体。二、如何拿到 rest-api-id 与 resource-id1234123412、a1b2c3这类 ID 在实际使用中需要从 AWS 侧查询获得通常分两步1. 查询 REST API 列表aws apigateway get-rest-apis输出中每一项的id字段就是--rest-api-id。2. 查询某 API 下的资源列表aws apigateway get-resources --rest-api-id 1234123412官方示例文档 get-resources.rst 给出了典型输出{ items: [ { path: /resource/subresource, resourceMethods: { POST: {} }, id: 024ace, pathPart: subresource, parentId: ai5b02 } ] }其中id资源标识符即--resource-id的取值path资源在 API 中的完整 URL 路径pathPart资源自身的路径片段parentId父资源 ID用于确定资源在树中的层级resourceMethods已在该资源上定义的 HTTP 方法。3. 仅查看单个资源详情如果只想确认某个资源的具体信息也可以配合get-resource使用aws apigateway get-resource --rest-api-id 1234123412 --resource-id 024ace三、删除操作的核心注意事项级联删除与删除保护1. 删除资源会级联删除其子资源这是delete-resource最重要的行为特征删除一个资源时该资源下的所有子资源、方法Method、集成Integration、响应Response等配置会被一并删除。因此删除父资源前务必先通过get-resources确认其下是否还有在用的子资源如果只想调整层级结构请改用update-resource的parentId替换操作见下文而不是直接删除重建。2. 删除是异步完成的底层请求返回 202 Accepted 而非 200表示删除请求已被接受、处理为异步执行。命令执行完成后资源可能不会立刻从get-resources的结果中消失建议稍后重新查询确认。3. 根路径/不可删除API 的根资源path 为/是每个 REST API 的起点不可以被删除。删除操作只能针对通过create-resource创建的普通资源节点。4. 常见失败原因依据 service-2.json 中声明的错误列表删除资源可能遇到以下异常异常类型触发场景UnauthorizedException凭证无权操作该 APINotFoundExceptionrest-api-id或resource-id不存在最常见资源已被删除或 ID 拼写错误BadRequestException参数格式错误例如资源 ID 非法ConflictException操作与当前资源状态冲突例如正在删除根资源或资源处于被锁定状态TooManyRequestsException请求频率超过 API Gateway 的限流阈值稍后重试即可四、配套操作创建、移动与重命名资源delete-resource通常与资源生命周期的其他操作配套使用。这里给出官方示例中可直接复制的命令方便你理解完整的资源管理闭环。创建资源aws apigateway create-resource --rest-api-id 1234123412 --parent-id a1b2c3 --path-part new-resource参见 create-resource.rst。--parent-id指定父资源--path-part指定路径片段会自动进行 URL 编码。移动资源到新的父节点aws apigateway update-resource --rest-api-id 1234123412 --resource-id 1a2b3c --patch-operations opreplace,path/parentId,value3c2b1a重命名资源aws apigateway update-resource --rest-api-id 1234123412 --resource-id 1a2b3c --patch-operations opreplace,path/pathPart,valuenewresourcename上面两条命令的完整输出示例见 update-resource.rst。重命名或移动子资源时其完整路径会自动更新但请注意如果资源上已绑定了域名、SDK 或客户端调用路径变化会影响调用方。删除整个 API当整棵资源树都不再需要时可以直接删除整个 REST API资源会随之一并清除aws apigateway delete-rest-api --rest-api-id 1234123412参见 delete-rest-api.rst。五、实用脚本思路按路径反查并删除资源实际运维中更常见的场景是“想删掉某个路径”而不是“想删掉某个 ID”。可以结合get-resources的输出用命令行工具反查 ID# 先列出全部资源 aws apigateway get-resources --rest-api-id 1234123412 # 找到目标 path 对应的 id 后执行删除 aws apigateway delete-resource --rest-api-id 1234123412 --resource-id 查到的id由于get-resources默认返回的items已包含path与id的对应关系你也可以用jq之类的 JSON 处理工具按路径过滤例如aws apigateway get-resources --rest-api-id 1234123412 \ --query items[?path/users/test].id --output text拿到 ID 后再执行删除。删除前务必确认该路径下没有子资源避免误删整棵子树。六、源码中的实现佐证操作定义与错误列表DeleteResource操作在 awscli/botocore/data/apigateway/2015-07-09/service-2.json 中定义明确其 HTTP 方法为DELETE、请求路径为/restapis/{restapi_id}/resources/{resource_id}、成功响应码为 202。请求结构DeleteResourceRequest在 service-2.json 中定义restApiId与resourceId均为必填项且都以 URI 路径参数location: uri形式传递。官方示例文档删除、创建、查询、更新、删除整个 API 的示例分别位于 delete-resource.rst、create-resource.rst、get-resources.rst、update-resource.rst、delete-rest-api.rst。这些.rst文件由 AWS CLI 在生成aws apigateway help文档时引用是命令用法的第一手权威说明。七、快速参考# 删除单个资源 aws apigateway delete-resource --rest-api-id API_ID --resource-id RESOURCE_ID # 前置查询 aws apigateway get-rest-apis # 获取 rest-api-id aws apigateway get-resources --rest-api-id API_ID # 获取 resource-id aws apigateway get-resource --rest-api-id API_ID --resource-id RESOURCE_ID # 查看单资源详情要点总结--rest-api-id与--resource-id两个参数缺一不可删除是异步202且级联的——子资源、方法、集成会一并删除操作前务必核对资源树根路径/不可删除结构调整移动/重命名优先使用update-resource避免不必要的删除重建成功删除后命令无输出需通过get-resources复查确认。【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门