将 Lambda 与基础设施即代码(IaC)结合使用 - AWS Lambda

将 Lambda 与基础设施即代码(IaC)结合使用

Lambda 函数很少单独运行。相反,它们通常与数据库、队列和存储等其他资源一起都是无服务器应用程序的组成部分。借助基础设施即代码(IaC),可以自动执行部署流程,从而快速、可重复地部署和更新整个无服务器应用程序,涵盖许多独立的 AWS 资源。这种方法可以加快开发周期,简化配置管理,并确保每次都以相同的方式部署资源。

适用于 Lambda 的 IaC 工具

AWS CloudFormation

CloudFormation 是来自 AWS 的基础 IaC 服务。可以使用 YAML 或 JSON 模板,对整个 AWS 基础设施(包括 Lambda 函数)进行建模和预置。CloudFormation 可以处理创建、更新和删除 AWS 资源的复杂工作。

AWS Serverless Application Model (AWS SAM)

AWS SAM 是一个开源框架,构建在 CloudFormation 之上。它提供了用于定义无服务器应用程序的简化语法。使用 AWS SAM 模板,只需几行 YAML 即可快速预置 Lambda 函数、API、数据库和事件源。

AWS Cloud Development Kit (AWS CDK)

CDK 是 IaC 的代码优先方法。可以使用 TypeScript、JavaScript、Python、Java、C#/Net 或 Go 来定义基于 Lambda 的架构。选择首选语言,并使用参数、条件、循环、组合和继承等编程元素来定义基础设施的预期结果。然后,CDK 会生成底层 CloudFormation 模板用于部署。有关如何配合使用 Lambda 和 CDK 的示例,请参阅 使用 AWS CDK 部署 Lambda 函数

该示意图显示了 AWS SAM 和 AWS CDK 如何使用 AWS CloudFormation 部署 AWS 资源和代码

AWS 还提供了一项名为 AWS 基础设施编辑器 的服务,可使用简单图形界面开发 IaC 模板。凭借基础设施编辑器,可以通过在可视画布中拖动、分组和连接 AWS 服务来设计应用程序架构。然后,基础设施编辑器会根据您的设计创建 AWS SAM 模板或 AWS CloudFormation 模板,供您用于部署应用程序。

在以下 在 AWS SAM 和基础设施编辑器中使用 Lambda 函数 部分中,您将使用基础设施编辑器,根据现有 Lambda 函数为无服务器应用程序开发模板。