我需要创建一个API,其中供应商将使用REST调用将数据推送到服务器,并且此数据需要进一步推送到移动应用程序上的用户(使用截至目前的Websocket猜测)数据。< / p>
供应商使用REST API:我需要检查供应商凭证并将该数据写入数据库。
我很想知道我应该使用什么方法?我应该使用AWS API Gateway来帮助提高安全性和可扩展性。
并且在使用AWS API Gateway时 - 拥有EC2端点或Lambda端点的更好方法。
答案 0 :(得分:1)
使用EC2与Lambda取决于您希望如何设计服务和特定用例。如今,无服务器是一种趋势,但你不需要无服务器,只是为了无服务器。
对于您的用例,如果您将公开更新数据库的REST API,请说RDS,Lambda函数可能不是一个理想的选择。因为每次调用lambda函数时都需要打开连接。此外,如果您在NO VPC配置中运行lambda,则需要公开公开您的RDS端口。如果它的DynamoDB,它运作良好。
但是,再次,您想要通过网络套接字推送移动应用程序的更新。你肯定需要一个WebSocket服务器,我想它的EC2。
您可以设计应用程序,使所有业务逻辑都驻留在lambda函数中,更新数据库,将消息发布到SQS队列。然后,WebSocket服务器可以从SQS队列中获取消息并发布更新。这解耦了您的应用程序架构。这只是一种方法,不会水平扩展开箱即用。
OR - 您可以选择将所有内容放在一个EC2实例中,公开一个更新数据库的REST API,并将更新发布到WebSocket连接。