在亚马逊API网关的上下文中,什么是“阶段”?

ame*_*ior 9 staging aws-api-gateway

在亚马逊API网关的上下文中,什么是“阶段”。它的目的是什么,打算创建多少个。

生产/阶段/开发约定中与“阶段”有任何关系。

Avi*_*aya 8

我会将API网关阶段视为同一应用程序的管道中不同阶段或堆栈的不同环境。您可以根据需要拥有任意多个阶段。在简单的堆栈中,我们可以想到3个阶段dev,qa和prod。您可以通过阶段完成一些操作。

  1. 您将在每个阶段使用不同的网址。喜欢https://api-gateway-domain/dev/...https://api-gateway-domain/qa/..https://api-gateway-domain/prod/..。基本上url将是https://api-gateway-domain/<stage_name>/..
  2. 您可以使用自定义域名来与每个阶段关联。
  3. 您可以为每个阶段关联不同的使用计划。
  4. 您将主要拥有至少1个阶段变量来唯一地定义阶段。这可能是针对每个环境不同的elasticbeanstalk网址。尽管阶段变量,您将为每个阶段调用不同的后端URL。
  5. 您可以为该应用程序部署不同版本的API网关到不同阶段


小智 5

尽管您可以将阶段用作管道或环境中不同阶段的一部分,但这与管理环境的AWS赌注做法背道而驰。如果需要开发环境,请创建一个开发用户/帐户并使用该帐户进行部署。同样,其他环境位于生产或预生产中。

我也不想使用Stages对API进行版本控制。(由于版本控制REST API是一个巨大的反模式)

那么,哪个问题引发了关于AWS网关实际用于什么阶段的问题?每当我使用它们时,我都会在那里找到一个明智的占位符。

  • 您能否提供版本控制反模式的更多详细信息(也许是链接)?在谷歌上的快速搜索没有显示任何支持你的说法的内容。 (16认同)
  • 我同意这个评论。API 网关阶段大多是多余的,很难想象为什么我会使用不同的阶段,因为我可以创建一个新的堆栈(或 Terraform 中的模块)并获得许多相同的功能。 (7认同)
  • 对 REST API 进行版本控制是一个巨大的最佳实践,例如因为要向后兼容!如果这是您的观察或意见,请至少尝试解释原因,否则这可能会对没有经验的读者产生不必要的影响 (3认同)
  • REST api 的版本控制并不是一种反模式。目前还不清楚原始海报的含义。为了避免混淆,我删除了这句话。 (2认同)