在AWS API Gateway中使用基本路径映射进行版本控制

时间:2018-08-10 03:25:50

标签: amazon-web-services aws-lambda aws-api-gateway

我有一个非常简单的堆栈:位于lambda前面的API网关。目前,我的路径类似于: /dogs/dogs/{id}

我要做的就是向基本路径添加一个版本(即api.dogs.com/v1/dogs)。我尝试通过创建一个自定义域名来实现此目的,该自定义域名的v1基本路径映射指向我在API Gateway中的阶段。

这通过API网关进行路由就可以了,但是一旦遇到我的lambda中的路由逻辑,就会出现问题。我的lambda期望/dogs,但是使用基本路径映射,路径实际上是v1/dogs

什么是解决此问题的好方法?如果可能的话,我想摆脱必须直接在我的代码(lambda)中处理版本的问题。

1 个答案:

答案 0 :(得分:0)

在您的lambda函数收到的event对象中,实际上应该找到所有需要的信息,无论是否进行版本控制:

event = {
  "resource": "/hi",
  "path": "/v1/hi",
  "requestContext": {   
    "resourcePath": "/hi",
    "path": "/v1/hi",
    ....
  },
  ....
}

只需调整路由器逻辑中的代码以访问所需的属性即可解决您的问题,而无需再担心代码中的版本问题。