本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Serverless Application Model(Amazon SAM) 是什么?
Amazon Serverless Application Model(Amazon SAM) 是一个开源框架,可用于在其上构建无服务器应用程序
无服务器应用程序是 Lambda 函数、事件源以及共同执行任务的其他资源的组合。请注意,无服务器应用程序不仅仅是一个 Lambda 函数,它还可以包含其他资源,例如 API、数据库和事件源映射。
您可以使用Amazon SAM来定义您的无服务器应用程序。 Amazon SAM包括以下组成部分:
-
Amazon SAM模板规范。您可以使用此规范来定义您的无服务器应用程序。它提供了一种简单而干净的语法,用于描述构成无服务器应用程序的函数、API、权限、配置和事件。您可以使用Amazon SAM模板文件在单个可部署、受版本控制的实体上进行操作,即您的无服务器应用程序。有关完整的Amazon SAM模板规范,请参阅Amazon Serverless Application Model(Amazon SAM) 规格。
-
Amazon SAM命令行接口 (Amazon SAMCLI)。您可以使用此工具来构建由Amazon SAM模板定义的无服务器应用程序。CLI 提供的命令使您能够验证Amazon SAM模板文件是否按照规范编写,在本地调用 Lambda 函数,逐步调试 Lambda 函数,将无服务器应用程序打包并部署到Amazon云端等等。有关如何使用Amazon SAM CLI 的详细信息,包括完整的Amazon SAM CLI 命令参考,请参阅Amazon SAMCLI 命令参考。
本指南向您展示Amazon SAM如何使用定义、测试和部署简单的无服务器应用程序。它还提供了一个示例应用程序,您可以下载、在本地测试和部署到Amazon云端。您可以使用此示例应用程序作为开发自己的无服务器应用程序的起点。
使用 Amazon SAM 的好处
由于与其他Amazon服务Amazon SAM集成,因此使用创建无服务器应用程序Amazon SAM具有以下好处:
-
单一部署配置。 Amazon SAM可以轻松组织相关的组件和资源,并在单个堆栈上运行。您可以使用Amazon SAM在资源之间共享配置(例如内存和超时),并将所有相关资源作为单个版本控制的实体一起部署。
-
的延长Amazon CloudFormation. 因为Amazon SAM是的扩展Amazon CloudFormation,所以您可以获得的可靠部署能力Amazon CloudFormation。您可以在Amazon SAM模板Amazon CloudFormation中使用来定义资源。此外,您可以使用中提供的全套资源、内部函数和其他模板功能Amazon CloudFormation。
-
内置最佳实践。您可以使用配置Amazon SAM来定义和部署您的基础架构。这使您可以使用和强制执行最佳实践,例如代码审查。此外,通过几行配置,您可以通过启用安全部署 CodeDeploy,也可以使用启用跟踪Amazon X-Ray。
-
本地调试和测试。CAmazon SAM LI 允许您在本地构建、测试和调试由Amazon SAM模板定义的无服务器应用程序。CLI 在本地提供类似 Lambda 的执行环境。它通过提供与实际 Lambda 执行环境相同的功能,帮助您提前catch 问题。要逐步调试代码以了解代码在做什么,可以Amazon SAM与Amazon工具包一起使用,例如 AmazonToolkit for、Toolkit for PyCharm
IntelliJ 和Amazon ToolkAmazon it for Visual Amazon Toolkit for JetBrains工作室代码 。这使您可以发现和解决云中可能遇到的问题,从而收紧反馈循环。 -
与开发工具的深度集成。您可以使用Amazon SAM一套Amazon工具来构建无服务器应用程序。您可以在中发现新的应用程序Amazon Serverless Application Repository。要创作、测试和调试Amazon SAM基于服务器的无服务器应用程序,可以使用 Amazon Cloud9IDE。要为无服务器应用程序构建部署管道,可以使用CodeBuildCodeDeploy、和CodePipeline。您也可以使用 AWS CodeStar 开始使用项目结构、代码存储库和自动为您配置的 CI/CD 管道。要部署您的无服务器应用程序,您可以使用 Jenkins 插件
。