Aws lambda EventBridge与API网关

Aws lambda EventBridge与API网关,aws-lambda,aws-api-gateway,flask-restplus,zappa,aws-event-bridge,Aws Lambda,Aws Api Gateway,Flask Restplus,Zappa,Aws Event Bridge,在过去的几天里,我试图学习如何使用AWS,因为我想部署一些API 到目前为止,我正在学习如何将API网关与Lambda函数结合使用,这似乎是一个不错的工作流。但是,因为我使用flask restplus编写API,所以我尝试了Zappa框架,它使用EventBridge(CloudWatch事件)作为我创建的每个Lambda函数的触发器 因此,我的问题是: EventBridge和API网关之间有什么区别?我应该在什么时候使用它们 在使用API网关时,我意识到最好的做法是为每个API创建不同的L

在过去的几天里,我试图学习如何使用AWS,因为我想部署一些API

到目前为止,我正在学习如何将API网关Lambda函数结合使用,这似乎是一个不错的工作流。但是,因为我使用flask restplus编写API,所以我尝试了Zappa框架,它使用EventBridge(CloudWatch事件)作为我创建的每个Lambda函数的触发器

因此,我的问题是:

  • EventBridge和API网关之间有什么区别?我应该在什么时候使用它们
  • 在使用API网关时,我意识到最好的做法是为每个API创建不同的Lambda函数,然后将其连接到网关。那么,将整个python文件作为Lambda函数上传是一个好主意吗?(所有API路由都写在那里)还是应该为每个API执行一个过程
  • 先谢谢你

  • API网关是一种允许您创建RESTful API的服务。如果您想像前面提到的那样部署一些API,我假设这正是您所需要的EventBridge是一种无服务器事件总线,您可以在其中发布事件并配置lambda以使用这些事件。这就是解耦通信的用途。例如,如果向您的API网关发送的帖子为您的应用程序创建了新用户 然后您的Lambda可以将事件“USER_CREATED”分派到 事件桥事件总线。然后,另一个Lambda可以订阅该事件 “用户已创建”并发送欢迎电子邮件CloudWatch事件 仅发布到事件总线的基于计时器的EventBridge事件。因为 例如,您可以创建一个规则,该规则每一天通知您的lambda 早上去运行一些后台任务。发送每日营销报告 给客户的电子邮件可能就是这样一个用例

  • 我认为没有一个单一的最佳实践。从一个Lambda服务于多个API端点开始可能更简单。您还可以考虑lambda需要什么样的权限和资源/数据库。一个示例是将Lambdas划分为命令并查询Lambdas。这样,POST、PATCH、PUT和DELETE就可以调用一个对数据库具有写入权限的Lambda。然后使用另一个仅对数据库具有读取权限的Lambda处理GET端点。这个read lambda将来可能会使用一些不同类型的数据库,这些数据库针对查询进行了优化。这些只是应用程序增长时要考虑的一些事情。


  • 非常感谢您的回复。您帮助消除了API网关和EventBridge之间的差异。至于第二个问题,我发现还有一个参数,除了权限,我必须考虑,也就是尽量减少“冷启动”。所以我要找到一个更像单片模型的解决方案,但形式不同。是的,这是一个很好的观点。完全忘记了冷启动。