本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
什麼是 AWS Serverless Application Model (AWS SAM)?
AWS Serverless Application Model (AWS SAM) 是一種開放原始碼架構,可使用基礎設施即程式碼 (IaC) 建置無伺服器應用程式。使用 AWS SAM的速記語法,開發人員會宣告AWS CloudFormation
-
AWS SAM CLI - 命令列工具,可協助您開發、本機測試和部署無伺服器應用程式。
-
AWS SAM 範本 - 的延伸 AWS CloudFormation ,提供定義無伺服器資源的簡化語法。
當您使用 sam init命令時,它會建立專案目錄,我們將此目錄稱為 AWS SAM 專案,通常包含您的 AWS SAM 範本、應用程式碼和其他組態檔案。
使用時機 AWS SAM
AWS SAM 是理想的 IaC 解決方案,適用於您希望以完整功能簡化無伺服器開發的案例 AWS CloudFormation。例如,您可以將 SAM 用於:
-
無伺服器應用程式:您可以使用 SAM 快速定義 AWS Lambda 函數、Amazon API Gateway APIs、Amazon DynamoDB 資料表,以及其他程式碼最少的無伺服器資源。
-
AWS 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 與 結合。
主要功能
AWS SAM 提供各種優點,可讓您:
- 使用較少的程式碼,快速定義您的應用程式基礎設施程式碼
-
編寫 AWS SAM 範本以定義您的無伺服器應用程式基礎設施程式碼。將您的範本直接部署到 AWS CloudFormation 以佈建您的 資源。
- 在整個開發生命週期中管理您的無伺服器應用程式
-
透過開發生命週期的編寫、建置、部署、測試和監控階段,使用 AWS SAMCLI來管理您的無伺服器應用程式。如需詳細資訊,請參閱AWS SAM CLI。
- 使用 AWS SAM 連接器在資源之間快速佈建許可
-
在 AWS SAM 範本中使用 AWS SAM 連接器來定義 AWS 資源之間的許可。 會將您的程式碼 AWS SAM 轉換為促進意圖所需的 IAM 許可。如需詳細資訊,請參閱使用 AWS SAM 連接器管理資源許可。
- 在您開發時持續同步本機變更至雲端
-
使用 AWS SAMCLIsam sync命令自動同步本機變更至雲端,加速開發和雲端測試工作流程。如需詳細資訊,請參閱使用 sam sync 同步至 的簡介 AWS 雲端。
- 管理您的無Terraform伺服器應用程式
-
使用 AWS SAMCLI對 Lambda 函數和層執行本機偵錯和測試。如需詳細資訊,請參閱AWS SAMCLITerraform 支援。
相關資訊
如需 AWS SAM 運作方式的詳細資訊,請參閱 AWS SAM 運作方式。
若要開始使用 AWS SAM,請參閱 入門 AWS SAM。
如需如何使用 AWS SAM 建立無伺服器應用程式的概觀,請參閱 如何使用 AWS SAM。