无法删除AWS RestApi,执行delete-base-path-mapping报NotFoundException如何解决
解决AWS删除Base Path Mapping时报NotFoundException问题
该错误本质是指定的域名+base path组合在当前AWS环境的API Gateway中不存在,按照以下步骤排查解决即可:
步骤1:查询目标域名下所有已存在的Base Path Mapping
执行以下命令列出对应域名下所有映射,确认你要删除的base path是否真实存在,避免拼写错误:
aws apigateway get-base-path-mappings --domain-name api.domain.tld
注意将
api.domain.tld替换为你实际使用的自定义域名
常见的误区是默认映射的base path为空值,而非dev、v1这类自定义值,如果返回结果中basePath字段为空,删除时需要传入空字符串作为参数,而非任意默认值。
步骤2:确认区域匹配
API Gateway的自定义域名是区域级资源,如果你的CLI默认配置区域和域名所属区域不一致,也会触发NotFound错误,执行删除命令时主动指定所属区域即可:
# 替换为你实际的区域、域名、base path aws apigateway delete-base-path-mapping --domain-name 'api.domain.tld' --base-path 'dev' --region ap-southeast-1
步骤3:规避手动输入错误
从步骤1的返回结果中直接复制basePath字段的取值作为删除命令的参数,避免手动输入时出现大小写错误、多余空格、符号拼写错误等问题。如果base path为空,删除命令参数写为--base-path ''即可。
备选方案:通过控制台删除
如果CLI操作始终报错,可直接通过AWS控制台操作:
- 打开API Gateway控制台,进入「自定义域名」页面
- 点击目标域名进入详情页,切换到「API映射」标签
- 找到对应Rest API的映射条目,直接点击删除即可
- 等待30秒左右待配置生效后,再执行删除Rest API的命令
内容的提问来源于stack exchange,提问作者Rishabh Mehrotra
相关产品推荐
相关产品推荐

