您应该如何在AWS中部署无服务器和非无服务器资源的组合?

时间:2019-10-25 18:43:47

标签: amazon-web-services amazon-cloudformation

我需要部署无服务器(API GW和Lambda)和非无服务器资源(RDS,ElastiCache等)的组合。使用SAM模板,可以轻松部署所有这些资源。但是,我应该将它们全部放在一个模板中还是应该使用无服务器模板(例如API GW和Lambda)以及用于不同静态资源的CloudFormation模板?有一些AWS最佳实践吗?

1 个答案:

答案 0 :(得分:1)

AWS SAM模板是CloudFormation的超集,因此,除了其针对无服务器资源的内置快捷方式外,还支持定义CloudFormation支持的任何资源。使用AWS SAM,您不仅可以定义无服务器资源和应用程序,还可以定义CloudFormation支持的任何其他资源。尽管目前没有针对每种资源使用哪种模板标准的最佳实践,但是您可能希望考虑为所有基础结构采用单一模板标准,因为代码模板可能使学习和采用该标准比同时采用多种标准。

关于资源的组织,可以用来组织和/或隔离资源的一种策略是CloudFormations Nested Stacks概念,SAM已将其扩展到Nested Applications。使用“嵌套”方法,您可以分离出资源并将其组织成单个模板或stacks,这些模板对于您的用例而言是合乎逻辑的,然后使用root stack进行部署。这种方法有很多优点,包括允许您在其他嵌套应用程序中重用stacks

您可以了解有关CloudFormation Nested Stacks differential_evolutionAWS SAM Nested Applications here的更多信息,并且AWS SAM嵌套堆栈here有一个不错的教程,您可以按照该教程熟悉迅速使用嵌套应用程序。