使用 AWS API Gateway 进行 API 版本控制

Posted

技术标签:

【中文标题】使用 AWS API Gateway 进行 API 版本控制【英文标题】:API Versioning with AWS API Gateway 【发布时间】:2016-12-23 13:28:39 【问题描述】:

我在使用 API Gateway + Lambda 实施可行的版本控制方案时遇到问题。我的要求是在 API 级别进行主要版本控制,然后在服务级别进行次要版本控制。我的环境也分布在多个帐户中,因此暂存不是 env 传播的选项。有没有人使用 AWS API Gateway 成功实施 API 管理?

【问题讨论】:

【参考方案1】:

在 API Gateway 中,主要版本应由单独的 API 表示。您可以使用自定义域功能将基本路径映射到每个 API(即 myapi.com/v1 => API 1、myapi.com/v2 => API 2)。您还可以使用导入/导出功能来管理 API 之间的更改。

在每个环境中使用单独的帐户实际上是建议的最佳做法。我建议仔细查看 CloudFormation 来管理您的工作流程 - 单个 CloudFormation 模板可以很好地跨多个帐户运行。

【讨论】:

只是在为每个环境设置不同的帐户,然后为每个环境设置不同的子域以保存服务域名的基本路径。由于域范围内的服务发生变化,我还考虑在服务端点级别进行次要版本控制,因此同一端点的多个版本可以在同一个主要版本中访问?我知道我们不应该在这里讨论意见陈述,但 api 版本控制并不是一门硬而快速的科学,尤其是在与 API Gateway 特定行为抗衡时会变得很奇怪。 我还将研究 Cloudformation + Swagger 以支持构建/部署自动化。 您能否提供示例形成模板来处理 api 部署?

以上是关于使用 AWS API Gateway 进行 API 版本控制的主要内容,如果未能解决你的问题,请参考以下文章

从AWS API-Gateway中找出lambda名称

AWS API Gateway:获取或发布以进行查询

使用 API Key 或 Authorizer 授权 AWS API Gateway

使用 AWS API Gateway 访问原始 URL

如何针对我的 AWS Api Gateway 对后端服务进行身份验证

使用 Cognito 在 AWS Api Gateway 中验证用户