本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
基础设施即代码(IaC)
借助基础设施即代码 (IaC),您可以自动部署和管理 Amazon 资源,包括无服务器应用程序。IaC 允许您使用代码定义基础架构,从而更轻松地对部署进行版本控制、共享和复制。这种方法可以帮助您:
-
加快开发周期
-
简化配置管理
-
提高部署的可靠性和一致性
适用于 Amazon 无服务器应用程序的 IaC 工具
Amazon 提供了多种 IaC 工具,可帮助您构建、部署和管理云资源。本节介绍如何 Amazon SAM 融入该生态系统以及如何与其他 Amazon IaC 工具配合使用。
- Amazon CloudFormation
-
使用 Amazon CloudFormation
,您可以使用 YAML 或 JSON 模板对整个 Amazon 基础设施进行建模和配置。 Amazon CloudFormation 自动处理资源的创建、更新和删除。部署 Amazon SAM 应用程序时, Amazon CloudFormation 处理转换后的模板以创建和管理您的资源。 - Amazon Serverless Application Model (Amazon SAM)
-
Amazon SAM 使用用于定义无服务器资源的简化语法,帮助您构建无服务器应用程序。您可以使用 Amazon SAM 模板使用简洁的 YAML 语法来配置 Lambda 函数 APIs、数据库和事件源。 Amazon SAM 在部署期间将这些 Amazon CloudFormation 模板转换为模板。
注意
虽然 Amazon SAM 专门研究无服务器应用程序,但您可以在 Amazon SAM 模板中使用任何 Amazon CloudFormation 资源类型。这使您可以灵活地在需要时加入非无服务器资源。
- Amazon Cloud 开发套件 (Amazon CDK)
-
使用 Amazon CDK
,您可以使用熟悉的编程语言(例如 Python TypeScript、Java、C#/Net 或 Go)来定义您的无服务器基础架构。您可以使用诸如循环和条件之类的编程结构来定义基础架构,并 Amazon CDK 生成用于部署的 Amazon CloudFormation 模板。您可以使用在 Amazon SAMCLI本地测试和调试使用创建的应用程序 Amazon CDK。要了解更多信息,请参阅在本地测试 CDK 应用程序。
比较适用于无服务器应用程序的 IaC 工具
为无服务器应用程序选择 IaC 工具时,请考虑团队的偏好、项目要求和现有工作流程。下表比较了用于无服务器开发的 Amazon IaC 工具的主要特征:
工具 |
主要用途 |
最适合 |
适用于 Amazon SAM |
何时选择 |
|---|---|---|---|---|
Amazon CloudFormation |
管理复杂 Amazon 的基础架构 |
需要对 Amazon 资源进行详细控制的应用程序 |
Amazon SAM 模板在部署期间转换为 Amazon CloudFormation 模板 |
用于精细控制非无服务器资源 |
Amazon SAM |
无服务器应用程序开发 |
使用 Lambda 构建无服务器应用程序的团队 |
原生功能 |
主要关注具有 Lambda 函数、API Gateway 和其他无服务器 APIs资源的无服务器架构时 |
Amazon CDK |
使用编程语言定义基础架构 |
更喜欢类型化语言和代码优先方法的团队 |
生成 Amazon SAM 模板并 Amazon SAMCLI用于测试 |
当您需要编程基础架构定义或复杂的资源配置逻辑时 |
注意
虽然本指南侧重于 Amazon原生 IaC 工具,但 Terraform 是另一种可用于定义无服务器应用程序的流行的 IaC 解决方案。 Amazon SAMCLI支持对 Terraform 中定义的 Lambda 函数进行本地测试。有关更多信息,请参阅 Amazon SAM CLI Terraform 支持。
了解更多
-
要了解有关 DevOps 操作的更多信息 Amazon,请参阅 DevOps 上的简介 Amazon
-
有关在不同的 IaC 工具中使用 Lambda 的信息,请参阅将 Lambda 与基础设施即代码 (IaC) 结合使用