处理AWS API网关阶段的不同端点

typ*_*tch 6 amazon-web-services aws-api-gateway

我希望能够更改每个API网关方法中定义的终点,以便称为"Dev"的临时环境指向我的内部Dev API,Prod阶段当然会路由到我的Production API.

现在我必须手动更改每个方法,然后部署到prod stag但现在要进行任何测试我必须再次将它们全部更改为开发阶段.

我正在推进DNS交换机以将Dev移至Prod,但未来的开发仍需要对每种方法进行更改.

例:

我有一个名为User的资源和一个映射到终点的GET方法(HTTP代理) - > http://dev.mytestapp.com/api/v1/user

然后我部署到一个名为Dev的阶段 - 开发阶段给我一个URL来调用请求这个资源,例如.https://xxxxobl.execute-api.us-east-1.amazonaws.com/dev/user

现在我测试它并按预期工作,所以我想将它移动到一个生产阶段,只是称为阶段.当我部署到prod时,我的呼叫网址现在是https://xxxxobl.execute-api.us-east-1.amazonaws.com/prod/user

但问题是API仍然将终点映射到http://dev.mytestapp.com/api/v1/user,而不是http://prod.mytestapp.com/api/v1/user

所以我的舞台和网址已经改变,但被调用的实际API被硬编码为dev.

有任何想法吗?谢谢

小智 9

您可以利用阶段变量使端点路由到不同的API. 此页面显示如何为http代理设置阶段变量.您也可以将阶段变量用于lambda函数.

  • Api Gateway 团队在这里,您说得对。阶段变量是通过阶段的动态端点映射构建的。 (2认同)
  • 我的生产环境具有https端点,而开发人员具有http。AWS不允许我将协议设置为变量。:( (2认同)