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 资源与标准资源一起使用。

  • 本地开发和测试:在部署CLI到开发计算机之前,您可以使用 SAM 在本地测试 Lambda 函数、模拟 API Gateway 终端节点以及调试开发计算机上的无服务器应用程序。 AWS

  • 适用于无服务器的 CI/CD:您可以使用 SAM 模板构建部署管道,这些模板会自动生成暂存和 CloudFormation 生产环境所需的基础架构。

  • 从控制台创建的资源迁移:您可以使用 SAM 模板将 AWS 管理控制台中创建的 Lambda 函数和 API Gateway 资源转换为基础设施即代码。

AWS SAM 与其他 IaC 工具的比较

  • 改用 SAM CloudFormation 来简化无服务器资源定义,同时保持模板兼容性。

  • AWS CDK 如果您更喜欢使用声明式方法而不是编程方式来描述您的基础架构,请改用 SAM。

  • 使用 SAM CLI 的本地测试功能将 SAM 与 AWS CDK ,增强您的 CDK 应用程序。

主要特征

AWS SAM 提供多种好处,通过允许您执行以下操作来改善开发者体验:

使用更少的代码快速定义应用程序基础设施代码

编写 AWS SAM 模板来定义您的无服务器应用程序基础架构代码。将模板直接部署 AWS CloudFormation 到以配置资源。

在无服务器应用程序的整个开发生命周期中对其进行管理

使用 AWS SAM CLI 在开发生命周期的编写、构建、部署、测试和监控阶段管理无服务器应用程序。有关更多信息,请参阅 AWS SAM CLI

使用 AWS SAM 连接器在资源之间快速配置权限

在 AWS SAM 模板中使用 AWS SAM 连接器来定义 AWS 资源之间的权限。 AWS SAM 将您的代码转换为实现您的意图所需的 IAM 权限。有关更多信息,请参阅 使用 AWS SAM 连接器管理资源权限

在开发时持续将本地更改同步到云端

使用该 AWS SAMCLIsam sync命令自动将本地更改同步到云端,从而加快开发和云测试工作流程。有关更多信息,请参阅 使用简介 sam sync 同步到 AWS Cloud

管理 Terraform 无服务器应用程序

使用 AWS SAM CLI 对 Lambda 函数和层执行本地调试和测试。有关更多信息,请参阅 AWS SAM CLI Terraform 支持

相关信息