

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

# 使用 AWS Serverless Application Model (AWS SAM) 作为 IaC 工具
<a name="aws-sam"></a>

[AWS Serverless Application Model (AWS SAM)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html) 是一个可扩展的工具包 AWS CloudFormation。它包括旨在帮助您更快地创建无服务器应用程序的其他功能。部署 AWS SAM 模板时，会将其转换为 CloudFormation 以创建定义的资源。 AWS SAM 由两部分组成，[AWS SAM 模板规范](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html#what-is-sam-template)和[AWS SAM 命令行界面 (AWS SAM CLI)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html#what-is-sam-cli)。尽管您可以直接在 AWS SAM 模板中使用 CloudFormation语法，但它 AWS SAM 提供了自己独特的语法，专门用于加快无服务器开发。这种简短语法允许对无服务器资源（例如 Amazon API Gateway）和资源的 IaC 进行优化。 AWS Lambda AWS Step Functions AWS SAM CLI 是一种开发者工具，其中的功能可帮助您在本地测试 AWS Lambda 功能、创建持续集成和持续交付 (CI/CD) 管道，以及运行命令来部署无服务器应用程序。

**使用的优点 AWS SAM：**
+ AWS SAM 具有与 CloudFormation。相同的优点。
+ 相比之下 CloudFormation，您可以更轻松地使用它 AWS SAM 来创建无服务器应用程序和资源，例如由 AWS Lambda支持的 Amazon API Gateway。
+ 使用 C AWS SAM LI，您可以在本地测试 AWS Lambda 函数。当您在调试模式下本地调用 Lambda 函数时，可以将调试器附加到该函数。借助调试程序，您可以逐行分步调试代码，查看各种变量的值，并像处理任何其他应用程序一样修正问题。

**使用的缺点 AWS SAM：**
+ AWS SAM 有同样的缺点 CloudFormation。
+ AWS SAM 不能在外面使用 AWS。