

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 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.
+ 使用 AWS SAM CLI，您可以在本地測試 AWS Lambda 函數。當您在偵錯模式下在本機叫用 Lambda 函數時，就可以將偵錯工具附加至該函數。使用偵錯工具，您可以逐行執行程式碼、查看各種變數的值，以及修正問題的方式，與其他任何應用程式相同的方式。

**使用的缺點 AWS SAM：**
+ AWS SAM 具有相同的缺點 CloudFormation。
+ AWS SAM 不能在以外使用 AWS。