

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

# 什麼是 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 Gateway APIs、Amazon DynamoDB 資料表，以及其他程式碼最少的無伺服器資源。
+ **CloudFormation 增強功能：**您可以將 SAM 與現有的 CloudFormation 範本結合，將無伺服器元件新增至傳統基礎設施。SAM 資源可與相同範本中的標準 CloudFormation 資源搭配使用。
+ **本機開發和測試：**您可以使用 SAM CLI 在本機測試 Lambda 函數、模擬 API Gateway 端點，以及在部署至 之前在開發機器上偵錯無伺服器應用程式 AWS。
+ **無伺服器 CI/CD：**您可以使用 SAM 範本建置部署管道，自動產生預備和生產環境所需的 CloudFormation 基礎設施。
+ **從主控台建立的資源遷移：**您可以使用 SAM 範本，將 AWS 在 管理主控台中建立的 Lambda 函數和 API Gateway 資源轉換為基礎設施做為程式碼。

** AWS SAM 與其他 IaC 工具比較**
+ 使用 SAM 而非 CloudFormation 來簡化無伺服器資源定義，同時維持範本相容性。
+  AWS CDK 如果您偏好使用宣告式方法來描述基礎設施，而不是以程式設計方式描述基礎設施，請使用 SAM。
+  AWS CDK 使用 SAM CLI 的本機測試功能來增強 CDK 應用程式，以將 SAM 與 結合。

## 主要功能
<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 SAM CLI**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)。