3

是否可以在 AWS API Gateway 中“关闭”/“禁用”API Gateway 中的 API,而不删除 API 本身? 我希望保留 API 的配置,而不会因为我希望避免的其他删除而丢失它;这也将具有防止 AWS 计费 API 使用的有益并行动机。

有可能,还是删除唯一的选择?

4

3 回答 3

5

您可以将舞台的突发限制/速率限制设置为零。在控制台中:API Gateway -> 选择 API -> Protect/Throttling -> 选择您的阶段 -> EDIT Default route throttling -> Burst limit=0, Rate limit=0

至少对我有用。调用 API 时,您会得到:

{“消息”:“请求太多”}

于 2021-08-15T07:03:56.923 回答
3

没有禁用按钮,但有两种可能性可以视为一种解决方法:

  1. 删除 API 阶段。没有阶段,API 将无法访问。
  2. 由于如果有多个具有大量自定义设置的阶段可能会出现问题,因此您可以将Deny资源基础策略添加到 API。
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "execute-api:/{{stageNameOrWildcard}}/{{httpVerbOrWildcard}}/{{resourcePathOrWildcard}}"
        }
    ]
}

该策略将拒绝 API 的所有调用,使其有效禁用。但调用仍将计入 API 使用量。

于 2020-10-03T07:00:49.977 回答
2

我建议以下作为解决方法:

  1. 例如,您可以通过激活启用配额并将其设置为(每月 1 个请求)来 简单地限制该特定 API的使用计划。在此处输入图像描述

  2. 然后可以选择在网关响应下,将 Quota Exceeded 响应重新映射到 500。 在此处输入图像描述

  3. 发生更改的最后一步,转到资源然后单击操作部署 API然后选择阶段并单击部署在此处输入图像描述

于 2021-08-02T04:49:20.043 回答