首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开发、测试和部署使用AWS服务SQS、SES、Lambda的无服务器应用程序的最佳方法是什么?

问开发、测试和部署使用AWS服务SQS、SES、Lambda的无服务器应用程序的最佳方法是什么?
EN

Stack Overflow用户
提问于 2021-03-24 06:00:12
回答 1查看 317关注 0票数 0

我正在尝试开发一个无服务器应用程序,它将使用AWS SQS (简单队列服务)、AWS SES (简单电子邮件服务)和AWS Lambda。应用程序将执行以下步骤:

  • 在SQS队列中获取一些消息
  • 触发Lambda函数来处理所有这些消息。
  • Lambda将使用AWS SES发送电子邮件,或者使用第三方API发送SMS,这取决于消息的类型。

为了测试这一点,我创建了队列、lambda和配置的SES,所有这些都是手动使用https://aws.amazon.com上的web接口。对于Lambda函数,我只是在Lambda控制台提供的web中输入我的代码。因为它是一个非常简单的POC,它不需要任何测试,我让它工作。

现在,我想把它变成一个生产就绪的应用程序。我的要求:

  • 在我的机器上本地编码整个应用程序
  • 在类似于AWS的环境中进行本地测试。
  • 将代码发布到GitLab,然后在AWS上最终部署它
  • 所有这些资源(SQS队列、SES配置、Lambda函数)都将通过代码自动创建。

根据我在网上读到的内容,我可以找到3种不同的选择:

  • AWS云形成
  • AWS SAM
  • 无服务器框架

我的问题是:

  1. 对于我的用例来说,无服务器应用程序是正确的技术,还是我需要像AWS SWF或AWS Step函数这样的其他功能?我还读到了有关AWS应用程序的文章。他们是别的什么吗?
  2. 在成本、设置和使用方面,哪一种是最好的选择?我检查了CloudFormation本身不需要任何费用,您只需要支付所使用的服务(SQS、SES、Lambda)的费用,但是对于Serverless来说,使用该框架需要花费一些费用。
  3. 除了这些之外,还有其他选择吗?

我将使用NodeJS作为代码,并且只使用AWS作为我的云平台。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-24 09:29:04

简短的回答:是的,这对于Serverless函数是完全可行的,而且实际上是一个典型的Serverless用例。

长答案:

  1. 这里没有必要使用AWS SWF或AWS Step函数。但是,您可以使用Step函数,以防流程变得更加复杂(例如,涉及更多外部服务,您需要某些错误处理,或者您希望提高并行处理能力)。
  2. 首先,CloudFront不能与AWS或Serverless框架相媲美。你是说AWS CloudFormation吗?CloudFront是一个CDN,用于服务(和缓存)任何类型的内容,而CloudFormation是一个将基础设施描述为代码的工具。 CloudFormation是AWS和Serverless框架的“基础”,因为它们最终都将其模板代码转换为CloudFormation代码。然而,在我看来,CloudFormation使开发无服务器功能变得有点复杂。这就是为什么AWS、SAM或Serverless Framework等工具在某个时候突然出现的原因。AWS基本上是CloudFormation的一个扩展,即它提供了额外的资源类型,比如AWS::Serverless::Function,但是其他的都是CloudFormation。Serverless Framework还允许您添加CloudFormation资源,但是有自己的语法来指定Serverless函数。 就成本而言,CloudFormation、AWS和Serverless框架都是免费的。但是,您可以使用Serverless Framework的一些高级特性,但不必使用。然而,CloudFront并不是免费使用的--但我相信这不是您想要的服务。此外,对于SQS、SES和Lambda,您只需要为所使用的东西付费。 我个人更喜欢AWS,因为您更接近CloudFormation代码,并且与无服务器框架相比,您不需要一个插件就可以绕过Serverless框架为您所做的抽象。在“更大”的项目中,您会注意到这一点,您将留下标准的hello world示例。另一方面,Serverless框架非常流行,因此有许多资源可以帮助您。取决于你喜欢什么:)
  3. 在基础设施工具方面,您可以看看AWS CDK (一个很好的起点是cdkworkshop.com),它正变得越来越流行。 对于本地开发,您可以查看局部堆栈。免费版本支持本地模拟SQS和SES,所以这应该是有帮助的。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66775493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档