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