什麼是 AWS Serverless Application Model (AWS SAM)? - AWS Serverless Application Model

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

什麼是 AWS Serverless Application Model (AWS SAM)?

AWS Serverless Application Model (AWS SAM) 是一種開放原始碼架構,可使用基礎設施即程式碼 (IaC) 建置無伺服器應用程式。使用 AWS SAM的速記語法,開發人員會宣告AWS CloudFormation資源和專用無伺服器資源,這些資源會在部署期間轉換為基礎設施。使用 時 AWS SAM,您將與 互動:

  1. AWS SAM CLI - 命令列工具,可協助您開發、本機測試和部署無伺服器應用程式。

  2. 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 支援

相關資訊