我使用 a 创建了一个应用程序AWS::SERVERLESS::FUNCTION,其中附加了一个 HttpApi 事件。我认为为每个资源创建一个 lambda 是一个好主意,因此例如 Post、Get 和 Put on /customer 都由单个 lambda 处理,该 lambda 决定使用
switch (input.getHttpMethod()) {
case "GET": ...
case "POST: ...
}
Run Code Online (Sandbox Code Playgroud)
现在来解决我的问题:当使用sam local start-api我的 lambda 启动应用程序时,它被正确调用,但既没有input.getHttpMethod()设置也没有input.getRequestContext().getHttpMethod()设置。
鉴于 SAM 支持多个 HttpApi 事件,在本地运行应用程序时未能提供 http 方法实际上会完全减轻本地开发的负担。是我做错了什么,还是这真的不起作用?顺便说一句,我使用的是 Java,我无法判断使用其他语言是否也存在这个问题。
以防万一:我的“每个资源一个 lambda”方法是否错误,每个操作都应该有自己的 lambda 吗?