使用AWS SDK JavaScript删除usage plan提示关联API Stage错误如何解决
解决方案
AWS API Gateway 存在原生限制:关联了任意 API 阶段的使用计划无法直接删除,无需删除目标阶段,只需先解除使用计划和 API 阶段的关联关系即可完成删除,操作流程如下:
- 调用
getUsagePlan接口获取当前使用计划关联的所有 API 阶段 - 通过
updateUsagePlan接口移除所有关联的 API 阶段 - 执行原有删除逻辑
完整代码示例
const usage_plan_id = "你的使用计划ID"; const apigw = new AWS.APIGateway(); // 第一步:获取使用计划关联的API阶段 const usagePlan = await apigw.getUsagePlan({ usagePlanId: usage_plan_id }).promise(); const associatedStages = usagePlan.apiStages || []; if (associatedStages.length > 0) { // 第二步:移除所有关联的API阶段 const patchOps = associatedStages.map(stage => ({ op: "remove", path: "/apiStages", value: `${stage.apiId}:${stage.stage}` })); await apigw.updateUsagePlan({ usagePlanId: usage_plan_id, patchOperations: patchOps }).promise(); } // 第三步:删除使用计划 const response = await apigw.deleteUsagePlan({ usagePlanId: usage_plan_id }).promise();
注意:移除关联操作只会解除使用计划和API阶段的绑定关系,不会对原有的API阶段产生任何影响。
内容的提问来源于stack exchange,提问作者Ali Zgheib
相关产品推荐
相关产品推荐

