【发布时间】:2018-11-25 20:11:49
【问题描述】:
我开始使用 lambda 和 API Getway 研究 AWS 无服务器,因此我想为示例项目创建一个 REST API。我注意到在 API Getway 中,我们只能创建可以触发 lambda 函数的 http 方法,所以我不确定我是否做对了,但是每个 api 路由是否需要一个 lambda 函数?或者我们可以使用一个 lambda 函数以某种方式处理它。
例如,假设我的项目需要以下列表的 api:
- 登录
- 注册
- 获取用户数据
那么如果我要使用 API Getway 和 Lambda 来做这个,我需要 3 个 Lambda 函数吗?
如果我想为上面提到的那些创建 API,它应该是这样的端点?
https://API_GETWAY_DOMAIN/STAGE/LAMBDA_FUNCTION_FOR_LOGIN
https://API_GETWAY_DOMAIN/STAGE/LAMBDA_FUNCTION_FOR_REGISTER
https://API_GETWAY_DOMAIN/STAGE/LAMBDA_FUNCTION_FOR_GET_USER_DATA
有没有办法将多个 http 请求发送到一个 lambda 函数,并在 lambda 中处理它们中的每一个?
【问题讨论】:
-
同意丹尼斯.. 你可以,但你为什么要这样做?单独的 lambdas 有助于在您的 lambdas 之间分离和委派责任。
-
@DenisTsoi 但是我怎样才能检测到它,比如这个调用是用于登录,还是用于注册等。我的意思是端点结构是这样的:API_GETWAY_DOMAIN/STAGE/LAMBDA_FUNCTION 有没有办法添加一些东西喜欢到它的路线,比如API_GETWAY_DOMAIN/STAGE/LOGIN/LAMBDA_FUNCTION
-
@James 可能我弄错了,我想从路由的角度来看这个,所以基本上,每条路由,都是一个 lambda 函数,对吧?
-
你如何构建你的 lambdas 和你的路由是完全解耦的。
-
也许我不明白你在做什么。您添加资源,然后将特定资源映射到“操作”,例如 lambda 函数。我不会有两个资源或路径映射到同一个函数。它使事情变得混乱,并在您的应用程序中增加了 API Gateway 可以自行完成的另一层复杂性。
标签: amazon-web-services aws-lambda aws-api-gateway serverless aws-serverless