如何通过命令行在不同阶段部署无服务器代码?

时间:2019-05-02 07:51:31

标签: node.js aws-api-gateway serverless-framework serverless staging

当前,我正在使用以下命令行从本地机器部署到不同阶段:

"args": ["bash", "-c", "/sbin/ss -l | grep vrrp"],

但是此代码在API Gateway部分中创建了一个全新的部分(项目)。看到我的附件链接。

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

此代码是否应在API->(API项目)->阶段部分中创建serverless deploy --stage qa不同的阶段?

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

还是有其他命令可以执行我想要的操作?

1 个答案:

答案 0 :(得分:2)

我认为无服务器的编写方式是一种部署到不同阶段的更简洁的方法。虽然API网关确实允许在同一API网关下进行不同的阶段,但这为意外地做您不想做的事情留了更多的空间,例如不小心拆除了生产API而不是开发人员。

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

如果您遵循最佳实践,并且每个阶段都有一个AWS账户,那么您的问题就不会出现,因为您的每个登台账户中都会有一个API网关。

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