【问题标题】:AWS SAM Local vs Serverless-offlineAWS SAM Local vs Serverless-offline
【发布时间】:2022-02-12 22:53:11
【问题描述】:
我们是一家 Terraform 商店,用于在 AWS 上建立我们的基础设施,我使用 AWS SAM Local 来:
- 无需在云端部署即可在本地测试 AWS Lambda。
- 我还可以在本地运行的 lambda 函数上运行集成测试,因为它会调用在云中运行的下游服务。
我对 serverless-offline 很好奇。我对 npm 无服务器库没有太多经验,想知道其他人是否有与 SAM Local 相比的经验?它是否具有与 AWS SAM Local 相同的功能?
【问题讨论】:
标签:
amazon-web-services
aws-lambda
integration-testing
aws-sam-cli
serverless-offline
【解决方案1】:
sam local cli 命令和Serverless Offline 插件的工作方式相似。两者都运行 Docker 实例并模拟 API Gateway 和 Lambda。此外,与 SAM Local 不同,Serverless Framework 支持其他平台。
使用一种或另一种的最大优势是能够使用您当前使用的工具在本地测试您的无服务功能。因此,如果您使用 AWS SAM,sam local 将是最佳选择,如果您使用无服务器框架,则类似,因为最佳选择将使用 Serverless-offline 插件。
Serverless Framework 早在 SAM Local 出现之前就包含了离线测试,因此您可能会发现 options 尚无法使用 SAM local。 sam local 可以有一些优势,比如模板验证。
两个系统都使用 Node.js 并支持 API Gateway 和 Lambda,但目前都不支持 DynamoDB 执行,因此您需要设法让您的 DynamoDb 在本地可用。
如果您想确定最适合您的选择是 AWS SAM 还是无服务框架,您可以像下面这样进行比较:Comparing AWS SAM with the Serverless framework。