

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# AWS Serverless Application Model (AWS SAM) 是什么？
<a name="what-is-sam"></a>

AWS Serverless Application Model (AWS SAM) 是一个开源框架，用于使用基础设施即代码 (IaC) 构建无服务器应用程序。使用 AWS SAM速记语法，开发人员可以声明[CloudFormation](https://aws.amazon.com/cloudformation)资源和专门的无服务器资源，这些资源和在部署期间转换为基础架构的无服务器资源。使用时 AWS SAM，您将与以下人员互动：

1. AWS SAM CLI-一款命令行工具，可帮助您开发、本地测试和部署无服务器应用程序。

1. AWS SAM 模板-其扩展提供了用于定义无服务器资源的简化语法。 CloudFormation 

当您使用该**sam init**命令时，它会创建一个项目目录，我们将其称为 AWS SAM 项目，该目录通常包含您的 AWS SAM 模板、应用程序代码和其他配置文件。

## 何时使用 AWS SAM
<a name="when-to-use-sam"></a>

AWS SAM 是理想的 IaC 解决方案，适用于您希望借助的全部功能简化无服务器开发的场景。 CloudFormation例如，您可以在以下情况中使用 SAM：
+ **无服务器应用程序：您可以使用 SAM 使用最少**的代码快速定义 AWS Lambda 函数、Lambda 持久函数、Amazon API APIs Gateway、Amazon DynamoDB 表和其他无服务器资源。
+ **CloudFormation 增强：**您可以将 SAM 与现有 CloudFormation 模板相结合，向传统基础架构中添加无服务器组件。在同一个模板中，SAM CloudFormation 资源与标准资源一起使用。
+ **本地开发和测试：**您可以使用 SAM CLI 在本地测试 Lambda 函数、模拟 API 网关端点，并在部署到 AWS之前在开发计算机上调试无服务器应用程序。
+ **适用于无服务器的 CI/CD：**您可以使用 SAM 模板构建部署管道，这些模板会自动生成暂存和 CloudFormation 生产环境所需的基础架构。
+ **从控制台创建的资源迁移：**您可以使用 SAM 模板将 AWS Management Console 中创建的 Lambda 函数和 API 网关资源转换为“基础设施即代码”。

** AWS SAM 与其他 IaC 工具的比较**
+ 改用 SAM CloudFormation 来简化无服务器资源定义，同时保持模板兼容性。
+  AWS CDK 如果您更喜欢使用声明式方法而不是编程方式来描述您的基础架构，请改用 SAM。
+ 使用 SAM CLI 的本地测试功能将 SAM 与 AWS CDK ，增强您的 CDK 应用程序。

## 主要 功能
<a name="what-is-sam-feature"></a>

AWS SAM 提供多种好处，通过允许您执行以下操作来改善开发者体验：

**使用更少的代码快速定义应用程序基础设施代码**  
编写 AWS SAM 模板来定义您的无服务器应用程序基础架构代码。将模板直接部署 CloudFormation 到以配置资源。

**在无服务器应用程序的整个开发生命周期中对其进行管理**  
使用 AWS SAM CLI 在开发生命周期的编写、构建、部署、测试和监控阶段管理无服务器应用程序。有关更多信息，请参阅 [AWS SAM CLI](using-sam-cli.md)。

**使用 AWS SAM 连接器在资源之间快速配置权限**  
在 AWS SAM 模板中使用 AWS SAM 连接器来定义 AWS 资源之间的权限。 AWS SAM 将您的代码转换为实现您的意图所需的 IAM 权限。有关更多信息，请参阅 [使用 AWS SAM 连接器管理资源权限](managing-permissions-connectors.md)。

**在开发时持续将本地更改同步到云端**  
使用该 AWS SAMCLI**sam sync**命令自动将本地更改同步到云端，从而加快开发和云测试工作流程。有关更多信息，请参阅 [使用同步sam sync到的简介 AWS 云](using-sam-cli-sync.md)。

**管理 Terraform 无服务器应用程序**  
使用 AWS SAM CLI 对 Lambda 函数和层执行本地调试和测试。有关更多信息，请参阅 [AWS SAM CLI Terraform 支持](terraform-support.md)。

## 相关信息
<a name="w2aab5c15"></a>
+ 有关 AWS SAM 工作原理的信息，请参阅[如何 AWS SAM 运作](what-is-sam-overview.md)。
+ 要开始使用 AWS SAM，请参阅[入门 AWS SAM](serverless-getting-started.md)。
+ 有关如何使用创建无服务器应用程序 AWS SAM 的概述，请参阅[如何使用 AWS SAM](chapter-using-sam.md#chapter-using-sam.title)。