【问题标题】:Handling different end points for AWS API Gateway Stages处理 AWS API Gateway 阶段的不同端点
【发布时间】:2015-10-28 19:53:14
【问题描述】:

我希望能够更改在每个 API Gateway 方法中定义的端点,以便名为“Dev”的登台环境指向我的内部开发 API,而 Prod 阶段当然会路由到我的生产 API。

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

我正在推进 DNS 切换以将 Dev 转移到 Prod,但未来的发展仍然需要对每种方法进行更改。

示例:

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

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

现在我进行了测试,它按预期工作,所以我想将它移到生产阶段,称为阶段。当我部署到 prod 时,我的调用 url 现在是 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 之类的东西

所以我的 stage 和 url 已经改变,但实际调用的 API 是硬编码到 dev。

有什么想法吗? 谢谢

【问题讨论】:

  • 你应该澄清你的问题。我不确定您是否正确使用了API Gateway
  • 添加了一个例子 - 也许我错过了舞台的真正用途。

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


【解决方案1】:

您可以利用stage variables 让端点路由到不同的 API。 This page 向您展示了如何为 http 代理设置阶段变量。您也可以将阶段变量用于 lambda 函数。

【讨论】:

  • Api Gateway 团队在这里,你说得对。阶段变量在构建时考虑了阶段的动态端点映射。
  • 我的生产环境有 https 端点,而开发有 http。 AWS 不允许我将协议设置为变量。 :(
  • 我很困惑,如果两者都调用相同的 lambda 函数,那么拥有 prod 和 dev 阶段的意义何在?
  • @Shipra 你有没有想过解决这个问题?我也在处理同样的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-29
  • 1970-01-01
  • 2018-11-12
  • 1970-01-01
  • 2017-02-23
  • 2019-02-20
  • 1970-01-01
相关资源
最近更新 更多