node.js - 如何通过命令行在不同阶段部署无服务器代码?
问题描述
目前我正在使用以下命令行从我的本地机器在不同阶段进行部署:
serverless deploy --stage qa
但是这段代码在 API Gateway 部分创建了全新的部分(项目)。请参阅我附加的链接。
这段代码是否应该serverless deploy --stage qa
在 APIs -> (API Project) -> Stages 部分创建不同的阶段?
我有点困惑哪种方式是正确的。我看到很多教程都创建了这两种方式。但是对我来说,在一个项目中创建不同的阶段是有意义的。
还是有不同的命令来做我想做的事?
解决方案
我认为无服务器的编写方式是一种更简洁的部署到不同阶段的方式。虽然 API 网关确实允许在同一个 API 网关下进行不同的阶段,但这为意外地做一些你不想做的事情留下了更多的空间,例如意外地拆除你的生产 API 而不是开发。
此外,最佳实践是将每个阶段都放在自己的 AWS 账户中。这使您可以更好地在帐户级别锁定生产环境,以避免意外更改。这有利于您的所有 AWS 资源,而不仅仅是 API Gateway。
如果您遵循最佳实践并且每个阶段都有一个 AWS 账户,那么您的问题就不会出现,因为您的每个暂存账户中都会有一个 API 网关。
如果这些最佳实践不适合您,您始终可以恢复为正常的 CloudFormation 模板,以强制每个阶段在同一 API 网关下进行不同的部署。
推荐阅读
- python - 将多索引/多级数据帧减少为单索引、单级
- r - 使用 rvest 在 R 中进行 Web 抓取以提取表数据
- r - 有没有办法在多个数据帧中找到最小值?
- javascript - Mongoose:查询年份列表
- css - 具有透明背景的按钮渐变边框
- google-apps-script - Google-apps-script 代码段抛出错误
- r - R with parallel & pls - 如何在 Windows 中处理非终止 Rscript 进程
- android - 设备可以在前台服务之前休眠吗?
- mysql - 如何在 Node.JS 中“包装”具有多个结果的响应
- php - 访问闭包 PHP 中的实例对象