本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
什麼是AWS Serverless Application Model (AWS SAM)?
AWS Serverless Application Model(AWS SAM) 是開放原始碼架構,可用來建置無伺服器應
無伺服器應用程式是 Lambda 函數、事件及其他資源的組合,以共同執行任務。請注意,無伺服器應用程式不僅僅是 Lambda 函數,還可以包含其他資源,例如 API、資料庫和事件來源對應。
您可以使用AWS SAM來定義無伺服器應用程式。 AWS SAM由下列各項所組成:
-
AWS SAM範本規格。您可以使用此規格來定義您的無伺服器應用程式。它提供了一個簡單而清晰的語法,來描述構成無伺服器應用程式的函數、API、許可、組態和事件。您可以使用AWS SAM範本檔案在無伺服器應用程式的單一、可部署、版本化實體上進行操作。如需完整AWS SAM範本規格,請參閱AWS Serverless Application Model(AWS SAM) 規格。
-
AWS SAM命令行界面(AWS SAMCLI)。您可以使用此工具來建置由AWS SAM範本定義的無伺服器應用程式。CLI 提供的命令可讓您驗證AWS SAM範本檔案是否根據規格撰寫、在本機叫用 Lambda 函數、逐步偵錯 Lambda 函數、封裝無伺服器應用程式並將其部署到AWS雲端等。如需有關如何使用AWS SAM CLI 的詳細資訊,包括完整的AWS SAM CLI 命令參考,請參閱AWS SAMCLI 令令令令令令。
本指南說明如何用AWS SAM來定義、測試和部署簡單的無伺服器應用程式。它還提供了一個示例應用程序,您可以下載,在本地測試和部署到AWS雲。您可以使用此範例應用程式作為開發自己的無伺服器應用程式的起點。
使用 AWS SAM 的優勢
由於與其他AWS服務AWS SAM整合,因此建立無伺服器應用程式AWS SAM具有下列優點:
-
單一部署組態。 AWS SAM可以輕鬆地組織相關組件和資源,並在單個堆棧上進行操作。您可AWS SAM以使用在資源之間共用設定 (例如記憶體和逾時),並將所有相關資源一起部署為單一版本化實體。
-
的延伸AWS CloudFormation。因為AWS SAM這是的延伸AWS CloudFormation,因此您可以取得的可靠部署功能AWS CloudFormation。您可以在AWS SAM範本AWS CloudFormation中使用來定義資源。此外,您還可以使用完整的資源套件、內建函數和其他可用的範本功能AWS CloudFormation。
-
內建的最佳做法。您可以使用AWS SAM將基礎結構定義和部署為配置。這使您可以使用和執行最佳實踐,例如代碼審查。此外,透過幾行組態,您就可以透過啟用安全部署 CodeDeploy,並且可以使用AWS X-Ray.
-
本地調試和測試。AWS SAMCLI 可讓您在本機建置、測試和偵錯由AWS SAM範本定義的無伺服器應用程式。CLI 在本地提供了一個類似 Lambda 的執行環境。它透過提供與實際 Lambda 執行環境的同位檢查,協助您預先發現問題。要逐步執行和調試代碼以了解代碼在做什麼,您可以使用AWS工AWS SAM具包,如AWS工具包 AWS Toolkit for JetBrains
,IntelliJ 的AWS工 具包和可視化AWS工具包 PyCharm工作室代碼 。這樣可以讓您尋找並疑難排解可能在雲端中遇到的問題,藉此收緊回饋迴圈。 -
與開發工具深度整合。您可以搭AWS SAM配一組AWS工具來建置無伺服器應用程式。您可以在中探索新的應用程式AWS Serverless Application Repository。對於編寫、測試和偵錯以AWS SAM — 為基礎的無伺服器應用程式,您可以使用 AWS Cloud9IDE。若要為無伺服器應用程式建置部署管線,您可以使用CodeBuildCodeDeploy、和CodePipeline。您也可以使用 AWS CodeStar 開始使用自動為您設定的專案結構、程式碼儲存庫和 CI/CD 管道。若要部署無伺服器應用程式,您可以使用 Jenkins 外掛
程式。