本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS Serverless Application Model (AWS SAM) 是什么?
AWS Serverless Application Model (AWS SAM) 是一个开源框架,用于使用基础设施即代码 (IaC) 构建无服务器应用程序。使用 AWS SAM速记语法,开发人员可以声明AWS CloudFormation
-
AWS SAM CLI-一款命令行工具,可帮助您开发、本地测试和部署无服务器应用程序。
-
AWS SAM 模板-其扩展提供了用于定义无服务器资源的简化语法。 AWS CloudFormation
当您使用该sam init命令时,它会创建一个项目目录,我们将其称为 AWS SAM 项目,该目录通常包含您的 AWS SAM 模板、应用程序代码和其他配置文件。
何时使用 AWS SAM
AWS SAM 是理想的 IaC 解决方案,适用于您希望借助的全部功能简化无服务器开发的场景。 AWS CloudFormation例如,您可以将 SAM 用于:
-
无服务器应用程序:您可以使用 SAM 用最少的代码快速定义 AWS Lambda 函数、Amazon API Gateway APIs、Amazon DynamoDB 表和其他无服务器资源。
-
AWS CloudFormation 增强:您可以将 SAM 与现有 CloudFormation 模板相结合,向传统基础架构中添加无服务器组件。在同一个模板中,SAM CloudFormation 资源与标准资源一起使用。
-
本地开发和测试:在部署CLI到开发计算机之前,您可以使用 SAM 在本地测试 Lambda 函数、模拟 API Gateway 终端节点以及调试开发计算机上的无服务器应用程序。 AWS
-
适用于无服务器的 CI/CD:您可以使用 SAM 模板构建部署管道,这些模板会自动生成暂存和 CloudFormation 生产环境所需的基础架构。
-
从控制台创建的资源迁移:您可以使用 SAM 模板将 AWS 管理控制台中创建的 Lambda 函数和 API Gateway 资源转换为基础设施即代码。
AWS SAM 与其他 IaC 工具的比较
-
改用 SAM CloudFormation 来简化无服务器资源定义,同时保持模板兼容性。
-
AWS CDK 如果您更喜欢使用声明式方法而不是编程方式来描述您的基础架构,请改用 SAM。
-
使用 SAM CLI 的本地测试功能将 SAM 与 AWS CDK ,增强您的 CDK 应用程序。
主要特征
AWS SAM 提供多种好处,通过允许您执行以下操作来改善开发者体验:
- 使用更少的代码快速定义应用程序基础设施代码
-
编写 AWS SAM 模板来定义您的无服务器应用程序基础架构代码。将模板直接部署 AWS CloudFormation 到以配置资源。
- 在无服务器应用程序的整个开发生命周期中对其进行管理
-
使用 AWS SAM CLI 在开发生命周期的编写、构建、部署、测试和监控阶段管理无服务器应用程序。有关更多信息,请参阅 AWS SAM CLI。
- 使用 AWS SAM 连接器在资源之间快速配置权限
-
在 AWS SAM 模板中使用 AWS SAM 连接器来定义 AWS 资源之间的权限。 AWS SAM 将您的代码转换为实现您的意图所需的 IAM 权限。有关更多信息,请参阅 使用 AWS SAM 连接器管理资源权限。
- 在开发时持续将本地更改同步到云端
-
使用该 AWS SAMCLIsam sync命令自动将本地更改同步到云端,从而加快开发和云测试工作流程。有关更多信息,请参阅 使用简介 sam sync 同步到 AWS Cloud。
- 管理 Terraform 无服务器应用程序
-
使用 AWS SAM CLI 对 Lambda 函数和层执行本地调试和测试。有关更多信息,请参阅 AWS SAM CLI Terraform 支持。
相关信息
有关 AWS SAM 工作原理的信息,请参阅如何 AWS SAM 运作。
要开始使用 AWS SAM,请参阅入门 AWS SAM。
有关如何使用创建无服务器应用程序 AWS SAM 的概述,请参阅如何使用 AWS SAM。