【发布时间】:2021-09-14 16:22:16
【问题描述】:
我想将您的 AWS API Gateway 用作我的后端的单一入口点,它将根据 URL 前缀将请求代理(重定向)到不同的微服务。但是,在进行代理之前,最好让 lambda 可以检查请求并在允许进行代理时做出决定,或者最好立即做出响应,所以,换句话说,我希望 AWS lambda 作为中间件。有可能吗?
【问题讨论】:
标签: amazon-web-services aws-lambda aws-api-gateway
我想将您的 AWS API Gateway 用作我的后端的单一入口点,它将根据 URL 前缀将请求代理(重定向)到不同的微服务。但是,在进行代理之前,最好让 lambda 可以检查请求并在允许进行代理时做出决定,或者最好立即做出响应,所以,换句话说,我希望 AWS lambda 作为中间件。有可能吗?
【问题讨论】:
标签: amazon-web-services aws-lambda aws-api-gateway
您可以在容器和 API gw 之间使用 lambda,但使用 lambda 作为“中间件”是一种反模式,您必须通过让 lambda 等待您的微服务响应来支付双倍费用。
如果您想处理身份验证或检查标头和 cookie,您应该使用 lambda 授权器。
对于您的用例,您可以使用应用程序负载均衡器。这可以将路径重定向到不同的目标组。 https://aws.amazon.com/premiumsupport/knowledge-center/elb-achieve-path-based-routing-alb/
拥有一个由执行早期响应或请求检查的不同微服务共享的库可能是有意义的。
不确定您的真正目标和用例是什么,但如果您详细说明您想要实现的目标,我可能会提供帮助。
【讨论】:
恕我直言,这将是 API Gateway 的工作——基于不同的 URI 和 HTTP 方法,您可以将请求转发到不同的 lambda。您还可以检查/验证您的请求参数/正文和/或添加授权方(包括 Lambda)。 了解更多关于用例以及 API Gateway 是否适合它会很有趣
【讨论】: