什么是 Amazon Serverless Application ModelAmazon 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 API、Amazon DynamoDB 表以及其他无服务器资源,且只需极少代码。
-
Amazon CloudFormation 增强功能:您可以将 SAM 与现有 CloudFormation 模板结合使用,为传统基础设施添加无服务器组件。SAM 资源可在同一模板中与标准 CloudFormation 资源协同工作。
-
本地开发和测试:您可以使用 SAM CLI 在本地测试 Lambda 函数、模拟 API 网关端点,并在部署到 Amazon 之前在开发计算机上调试无服务器应用程序。
-
适用于无服务器的 CI/CD:您可以使用 SAM 模板来构建部署管道,这些模板会自动生成用于过渡环境和生产环境所需的 CloudFormation 基础设施。
-
从控制台创建的资源迁移:您可以使用 SAM 模板将 Amazon Management Console 中创建的 Lambda 函数和 API 网关资源转换为“基础设施即代码”。
将 Amazon SAM 与其他 IaC 工具进行比较
-
使用 SAM 替代 CloudFormation,在保持模板兼容性的同时简化无服务器资源定义。
-
若您更倾向于采用声明式方法而非编程式方法来描述基础设施,请用 SAM 来替代 Amazon CDK。
-
使用 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 SAM CLI sam 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。