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