无论是否存在特定标头,如何将来自API网关的请求路由到lambda函数A / B / C?
https://api.example.com/prod
if the headers "UserType" is:
guest -> redirect to lambda A
normal -> redirect to lambda B
admin -> redirect to lambda C
我知道如何仅使用不同的网址,例如:
https://api.example.com/prod
https://api.example.com/dev
答案 0 :(得分:1)
实际上是不可能的。我们只能将一个Lambda函数与API网关的特定资源绑定。标头可作为lambda函数本身中的事件参数进行访问。
首选方法是在lambda中创建3个不同的函数(您的业务逻辑将驻留在这里),并根据您可以调用该函数的用户类型。
如果您确实要使用三个不同的lambda,则可以使用aws-sdk中可用的 invoke 方法。您可以参考以下链接获取代码语法和示例。
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Lambda.html#invoke-property
第二种方法肯定会增加响应时间。