【问题标题】:deleting a usage plan using AWS SDK JavaScript使用 AWS 开发工具包 JavaScript 删除使用计划
【发布时间】:2021-09-27 13:40:39
【问题描述】:

我正在尝试通过调用 deleteUsagePlan 函数并传递 usagePlanId 参数来使用 AWS SDK 删除使用计划,如下所示:

  const params: AWSNXR.APIGateway.DeleteUsagePlanRequest = {
    usagePlanId: usage_plan_id,
  };

  const apigw = new AWS.APIGateway();

  const response = await apigw.deleteUsagePlan(params).promise();

但由于某种原因,我无法执行此操作,并且收到此错误消息:BadRequestException: Cannot delete Usage Plan USAGE_PLAN_ID_HERE 因为有与之关联的 API 阶段,包括 API_ID_HERE:test

重现步骤:

1- 使用以下参数创建使用计划

名称:“我的使用计划”, api阶段:[ apiId: "API_ID_HERE", 阶段:“测试” ]

2-删除使用计划

usagePlanId:USAGE_PLAN_ID

我在第 2 步中不断收到错误消息: BadRequestException:无法删除使用计划 USAGE_PLAN_ID_HERE,因为有与之关联的 API 阶段,包括 API_ID_HERE:test

预期行为:

预期的行为是能够使用使用计划 ID 删除新创建的使用计划

其他内容:

我试图解决这个问题的方法: 1-我尝试删除 API 网关上的测试阶段 2- 我使用相同的使用计划 ID 运行删除使用计划功能

使用计划已成功删除,没有任何错误,但是,我应该能够删除它而无需删除阶段并在之后重新创建它。

【问题讨论】:

    标签: amazon-web-services aws-api-gateway aws-sdk aws-sdk-js


    【解决方案1】:

    在删除使用计划之前,您必须删除 api 阶段,您可以通过调用 updateUsagePlan 来做到这一点,如下所示:

    const params = {
        usagePlanId: "{usage plan id}", 
        patchOperations: [{
            op: "remove",
            path: "/apiStages",
            value: "{api gw id}:{stage name}"
        }]
     };
    const apigateway = new AWS.APIGateway();
    
    await apigateway.updateUsagePlan(params).promise();
    

    我找不到任何关于它的文档,只能通过在浏览器中跟踪源自 aws 控制台的网络调用找到解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-23
      • 2017-03-08
      • 1970-01-01
      • 2017-08-28
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      相关资源
      最近更新 更多