2

需要使用 cloudformation、sam 和 serverless 框架来部署 nodejs 应用程序的专家的意见。

请告知我使用无服务器框架但没有使用 sam 或 cloudformation 的最佳路径,虽然我同意它简化了过程,但我希望了解更多关于底层配置的信息。

我倾向于 cloudformation 只是因为这两个框架都将代码转换为 cloudformation 模板。如果我错了,请纠正我,并感谢学习相同内容的最佳资源。

4

3 回答 3

3

SAM 基本上是 Cloudformation 的扩展。如果您了解 SAM,那么您基本上了解 Cloudformation。SAM 可以而且应该与 Cloudformation 一起用于本地测试。

无服务器是 Cloudformation 之上的一个抽象层。它有助于加快应用程序的创建和部署。如果您正在做更高级的配置,它就不足了

我总是倾向于 Cloudformation(或 SAM),因为它是由 CSP(即 AWS)提供的。这意味着所有新的东西都将自动可用,而不是等待抽象层(如无服务器)获得支持。

于 2019-10-29T21:35:20.323 回答
2

LostJon 是绝对正确的,因为 CloudFormation 和 SAM 的支持是立即可用的,因为它是由 AWS 本机提供的。我倾向于 CloudFormation,因为它具有确定性的结果,这在 DevOps 环境中是需要的。除非您将转换显式添加到 CloudFormation 堆栈,否则没有转换。

当您使用 SAM 部署 CloudFormation 模板时,您将能够在 AWS 控制台中查看 CloudFormation 模板,但您也可以选择显示渲染的模板(例如在转换后),以便了解 SAM 在水下为您做了什么。您可以复制呈现的资源并将它们用作纯 CloudFormation。这使您可以加快开发速度,同时不会失去底层配置知识的好处。

于 2019-10-30T19:47:37.933 回答
2

I recommend the Serverless Framework. The advantages are several:

  • Much easier syntax than CloudFormation
  • More portable than CloudFormation (you can change between cloud providers)
  • Ability to write raw CloudFormation inline in serverless.yml if needed
  • Easy to deploy (just run sls deploy)

There is a sample project at my gitlab profile if you are interested (for GoLang but the principles are the same as for other runtimes) https://gitlab.com/montao/aws-lambda-go-gitlab-sls

于 2019-10-30T10:41:14.563 回答