限制访问 URL 的用户数量
Limit number of users accessing the URL
有什么方法可以限制使用 AWS 访问站点 url 的用户数量。 WAF 检查 IP 地址并在超过速率限制时将其阻止。
我需要它来自任何 IP,如果完全超过速率限制,它应该重定向到自定义页面,说明已超过限制。
api 网关的速率限制似乎是更好的方法,但是,主页不会调用任何 api。因此,它必须仅使用 url 进行管理。
据我所知,本地没有。我的理解是,您想对特定 URL 的访问频率进行全局限制。
您可以在 CloudFront 中使用 Lambda@Edge 函数,在后端使用 DynamoDB table。
每个请求都会调用 Lambda 函数。
如果应该限制的是 URL,它会对 DynamoDB 进行有条件的 UpdateItem
调用,并尝试在计数器尚未大于的条件下将计数器增加 1 X,其中 X 是您 URL.
的最大限制
如果 UpdateItem
成功,您可以将请求传递给源。
如果调用失败,您知道已超出限制,您可以进行重定向。
这样你使用 DynamoDB 作为中央计数器,它应该足够快并且足够好扩展。
一旦超过限制,您可以将其缓存在 Lambda@Edge 函数中以避免发出过多请求。
有什么方法可以限制使用 AWS 访问站点 url 的用户数量。 WAF 检查 IP 地址并在超过速率限制时将其阻止。
我需要它来自任何 IP,如果完全超过速率限制,它应该重定向到自定义页面,说明已超过限制。
api 网关的速率限制似乎是更好的方法,但是,主页不会调用任何 api。因此,它必须仅使用 url 进行管理。
据我所知,本地没有。我的理解是,您想对特定 URL 的访问频率进行全局限制。
您可以在 CloudFront 中使用 Lambda@Edge 函数,在后端使用 DynamoDB table。
每个请求都会调用 Lambda 函数。
如果应该限制的是 URL,它会对 DynamoDB 进行有条件的 UpdateItem
调用,并尝试在计数器尚未大于的条件下将计数器增加 1 X,其中 X 是您 URL.
如果 UpdateItem
成功,您可以将请求传递给源。
如果调用失败,您知道已超出限制,您可以进行重定向。
这样你使用 DynamoDB 作为中央计数器,它应该足够快并且足够好扩展。 一旦超过限制,您可以将其缓存在 Lambda@Edge 函数中以避免发出过多请求。