在部署之前获取 API Gateway 阶段的完整端点名称

Posted

技术标签:

【中文标题】在部署之前获取 API Gateway 阶段的完整端点名称【英文标题】:Getting the complete endpoint name of an API Gateway stage before deploying it 【发布时间】:2022-01-15 00:16:00 【问题描述】:

我正在使用 CDK 部署我的基础架构,并且我想自动化我的应用程序的整个部署。如果不使用 Route53 之类的东西,有没有办法让我事先知道我的 API 网关端点的名称是什么?我需要它,以便我可以自动构建和编译我的 Angular 前端并将其部署在存储桶中,并且我需要访问这些端点以获取一些数据。现在我首先部署基础设施,然后手动获取端点并将其粘贴到前端项目中,但我想知道是否有更好的方法来做到这一点。

【问题讨论】:

不,不可能,它是在部署时生成的。 【参考方案1】:

您不能在创建之前拥有固定的 API 网关端点,因为它是在创建时生成的。 (使用新 id)

根据您的需要,您必须将 API Gateway 生成的 url 存储在存储中,例如 SSM 参数存储,或参数存储,或其他位置。 然后在您的 Angular 构建中,将 url 注入您的 env 文件或 作为 env 变量,从这样的 env 文件中注入,例如 https://www.jvandemo.com/how-to-use-environment-variables-to-configure-your-angular-application-without-a-rebuild/

【讨论】:

【参考方案2】:

完整的解决方案需要使用CodeBuild 服务。你需要做:

部署 API Gateway 并等待阶段可用。 获取端点名称并在 Parameter Store 中添加一个参数。 创建一个将构建(和部署)您的 Web 应用程序的 CodeBuild 项目。端点名称可以设置为环境变量或通过 Parameter Store。

【讨论】:

以上是关于在部署之前获取 API Gateway 阶段的完整端点名称的主要内容,如果未能解决你的问题,请参考以下文章

如何将无服务器代码部署到 AWS API Gateway 中的阶段

是否可以使用 AWS SAM 配置具有不同 lambda 版本的不同 API Gateway 阶段

获取问题-不支持的方法:在测试 API Gateway API 时在邮递员中获取

AWS Lambda 和 Gateway API - 使用 cloudformation 的蓝/绿部署

SIA-GateWay之API网关安装部署指南

这可能是全网Spring Cloud Gateway限流最完整的方案了!