我有一个非常简单的堆栈:位于lambda前面的API网关。目前,我的路径类似于:
/dogs
,/dogs/{id}
等
我要做的就是向基本路径添加一个版本(即api.dogs.com/v1/dogs
)。我尝试通过创建一个自定义域名来实现此目的,该自定义域名的v1基本路径映射指向我在API Gateway中的阶段。
这通过API网关进行路由就可以了,但是一旦遇到我的lambda中的路由逻辑,就会出现问题。我的lambda期望/dogs
,但是使用基本路径映射,路径实际上是v1/dogs
。
什么是解决此问题的好方法?如果可能的话,我想摆脱必须直接在我的代码(lambda)中处理版本的问题。
答案 0 :(得分:0)
在您的lambda函数收到的event
对象中,实际上应该找到所有需要的信息,无论是否进行版本控制:
event = {
"resource": "/hi",
"path": "/v1/hi",
"requestContext": {
"resourcePath": "/hi",
"path": "/v1/hi",
....
},
....
}
只需调整路由器逻辑中的代码以访问所需的属性即可解决您的问题,而无需再担心代码中的版本问题。