在 Amazon API 网关的上下文中,"stage" 是什么?

What is a "stage" in the context of Amazon API Gateway?

Amazon API Gateway 上下文中的“阶段”是什么?它的用途是什么以及如何创建一个?

production/staging/development公约中的“分期”有什么关系吗?

我认为 API 网关阶段是管道中的不同阶段或同一应用程序堆栈的不同环境。您可以拥有任意多个阶段。在一个简单的堆栈中,我们可以想到 3 个阶段:dev、qa 和 prod。您可以在阶段中做的几件事:

  1. 每个阶段都有不同的 URL。像 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 个阶段变量来唯一定义您的阶段。这可能是 Elastic Beanstalk URL,每个环境都不同。通过阶段变量,您将为每个阶段调用不同的后端 URL。
  5. 您可以为该应用程序的不同阶段部署不同版本的 API 网关配置。

您可以将 API 网关阶段视为您的 API 的特定生命周期阶段或版本。

例如:

  • 生产阶段
  • 发展阶段
  • 测试阶段

从这些阶段,您可以配置限制和缓存等内容。

尽管您可以将阶段用作管道或环境中不同阶段的一部分,但这违背了管理环境的 AWS 最佳实践。

如果您想要一个开发环境,请创建一个开发环境 user/account 并使用它进行部署。同样,其他环境如生产或预生产。

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

这又引出了一个问题,即 AWS 网关中的阶段实际上是用来做什么的?每当我使用它们时,我都会在那里找到一个合理的占位符。