在不删除的情况下暂时关闭(禁用)API网关中的个别API?

问题描述 投票:0回答:5

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

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

amazon-web-services aws-api-gateway
5个回答
10
投票

您可以将阶段的突发限制/速率限制设置为零。 在控制台中:API 网关 -> 选择 API -> 保护/节流 -> 选择你的阶段 -> 编辑默认路由节流 -> 突发限制=0,速率限制=0

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

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


8
投票

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

  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 使用量。


2
投票

我建议以下解决方法:

  1. 您可以通过激活Enable Quota并将其设置为(每月1个请求)来简单地限制该特定API的Usage Plans

  2. 然后可选地在 Gateway Responses 下, 您可以将 Quota Exceeded 响应重新映射到 500。

  3. 发生更改的最后一步,转到资源,然后单击actionsDeploy API然后选择阶段并单击Deploy


0
投票

似乎有一个比上面更简单的答案:

  1. 设置 -> 默认端点 -> 禁用 -> 保存更改
  2. 资源 -> 行动 -> 部署

0
投票

如果您担心您的信用卡被附加到您的个人 AWS 账户以进行试用层访问,并且机器人会找到您的网关并对它进行 DOS 攻击,您可以通过导航到

API Gateway
>选择你的 API >
Stages
> 选择你的阶段。然后进行以下调整:

  • 确保节流复选框被选中
  • 将速率设置为每秒 10 个请求(或更低)
  • 将突发设置为 5 个请求(或更低)
  • Save
    变化

您必须为 API 的每个阶段执行此操作。

重新部署您的 API。

如果您超过阈值,亚马逊可能会要求您对费用负责 - 即使它们不是您自己针对您的端点提出的请求。

另见:https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-free-tier.html#avoid-charges-after-free-tier

© www.soinside.com 2019 - 2024. All rights reserved.