【问题标题】:process URL in AWS Lambda before sending to ALB在发送到 ALB 之前在 AWS Lambda 中处理 URL
【发布时间】:2020-03-05 16:43:33
【问题描述】:
我目前正在设置一个 ALB,它将包含 90 条基于路径模式的规则。
由于 ALB 支持的最大规则数为 100,并且路径模式表达式中不允许使用正则表达式,因此我需要找到一种解决方法来减少 ALB 中设置的规则数。
我的想法是在将 lambda 接收到的 URL 发送到 ALB 之前对其进行处理,这可能会降低 ALB 端的规则。
这是减少 ALB 中规则数量的好方法吗?我担心 lambda 并行执行的数量,因为它限制为 1000,除了 lambda 之外,还有其他托管 AWS 服务的选项吗?
谢谢!
【问题讨论】:
标签:
amazon-web-services
aws-lambda
amazon-elb
【解决方案1】:
你可以做到,但会极大地影响你的表现。您可以尝试在 ALB 之上使用 CloudFront。此外,您可以启动多个 ALB 并将它们设置在 CloudFront 后面
【解决方案2】:
我不会担心 lambda 执行。 1000 实际上是一个很大的数字,它是一个软限制(您可以要求更多)。如果您有一个在 100 毫秒内执行的 lambda,您可以运行 10K 请求/秒,并且不会突发(您可以超过短突发的限制)。
至于 ALB 中的规则数量,如果您有那么多基于路径的规则,您可能需要考虑使用 API 网关。正如另一个答案指出的那样,您可以使用 CloudFront 通过拥有多个 ALB 和基于部分路径的子路由来增加可用规则的数量。