AWS API 以 AWS Lambda 作为中间件的网关代理
AWS API Gateway proxy with AWS Lambda as middle ware
我想使用您的 AWS API 网关作为我后端的单一入口点,它将根据 URL 前缀将请求代理(重定向)到不同的微服务。但是,在进行代理之前,最好有 lambda,它可以检查请求并在允许进行代理时做出决定,或者最好立即做出响应,所以,换句话说,我希望将 AWS lambda 作为中间件。可以吗?
简答
是的,但不要这样做。还有其他解决方案。
解释为什么你不应该这样做
您可以在容器和 API gw 之间使用 lambda,但是将 lambda 用作 'middleware' 是一种反模式,您必须通过让 lambda 在微服务上等待来支付双倍的费用响应。
其他解决方案
如果您想处理身份验证或检查 headers 和 cookie,您应该使用 lambda 授权方。
对于您的 use-case,您可以使用应用程序负载平衡器。这可以将路径重定向到不同的目标组。
https://aws.amazon.com/premiumsupport/knowledge-center/elb-achieve-path-based-routing-alb/
拥有一个由执行早期响应或请求检查的不同微服务共享的库可能有意义。
不确定您的真正目标和用例是什么,但如果您详细说明您想要实现的目标,我可能会提供帮助。
恕我直言,这将是 API 网关的工作 - 基于不同的 URI 和 HTTP 方法,您可以将请求转发到不同的 lambda。您还可以检查/验证您的请求 params/body and/or 添加授权者(包括 Lambda)。
了解有关用例的更多信息以及 API 网关是否适合它会很有趣
我想使用您的 AWS API 网关作为我后端的单一入口点,它将根据 URL 前缀将请求代理(重定向)到不同的微服务。但是,在进行代理之前,最好有 lambda,它可以检查请求并在允许进行代理时做出决定,或者最好立即做出响应,所以,换句话说,我希望将 AWS lambda 作为中间件。可以吗?
简答
是的,但不要这样做。还有其他解决方案。解释为什么你不应该这样做
您可以在容器和 API gw 之间使用 lambda,但是将 lambda 用作 'middleware' 是一种反模式,您必须通过让 lambda 在微服务上等待来支付双倍的费用响应。
其他解决方案
如果您想处理身份验证或检查 headers 和 cookie,您应该使用 lambda 授权方。
对于您的 use-case,您可以使用应用程序负载平衡器。这可以将路径重定向到不同的目标组。 https://aws.amazon.com/premiumsupport/knowledge-center/elb-achieve-path-based-routing-alb/
拥有一个由执行早期响应或请求检查的不同微服务共享的库可能有意义。
不确定您的真正目标和用例是什么,但如果您详细说明您想要实现的目标,我可能会提供帮助。
恕我直言,这将是 API 网关的工作 - 基于不同的 URI 和 HTTP 方法,您可以将请求转发到不同的 lambda。您还可以检查/验证您的请求 params/body and/or 添加授权者(包括 Lambda)。 了解有关用例的更多信息以及 API 网关是否适合它会很有趣