如何通过命令行在不同阶段部署serverless代码?

How to deploy serverless code in different stages via command line?

目前我正在使用以下命令行在本地机器的不同阶段进行部署:

serverless deploy --stage qa

但是此代码在 API 网关部分中创建了全新的部分(项目)。看我的附件link.

https://photos.google.com/share/AF1QipPU6X8Dej7rNq5Ofo1eKfCq1cn6GpsL3GYdZ50yUO_a4quVPao9bllHIvRFA6VkbA?key=WVFDLVQ0cEd6aVB3cVlSY1hYcnBmS1BRT1QtNVVB

此代码是否应该在 APIs -> (API Project) -> Stages 部分中创建 serverless deploy --stage qa 个不同的阶段?

我有点困惑哪种方式是正确的。我看到很多教程都以两种方式创建。然而对我来说,在一个项目中创建不同的阶段是有意义的。

或者是否有不同的命令来执行我想要的操作?

我认为无服务器的编写方式是部署到不同阶段的一种更简洁的方式。虽然 API Gateway 允许在同一个 API Gateway 下进行不同的阶段,但这为意外地做一些你不想做的事情留下了更多的空间,例如不小心拆掉了你的作品 API 而不是 dev.

此外,最佳做法是将每个阶段都放在自己的 AWS 账户中。这使您可以更好地在帐户级别锁定您的生产环境,以避免意外更改。这对您的所有 AWS 资源都有好处,而不仅仅是 API 网关。

如果您遵循最佳实践并且每个阶段都有一个 AWS 账户,那么您的问题是无声的,因为您的每个临时账户中都会有一个 API 网关。

如果这些最佳实践不适合您,您可以随时恢复到正常的 CloudFormation 模板,以强制每个阶段成为同一 API 网关下的不同部署。