Aws lambda 如何处理AWS lambda服务中的6兆字节限制?

Aws lambda 如何处理AWS lambda服务中的6兆字节限制?,aws-lambda,Aws Lambda,我有一个在AWS中运行的三层应用程序。midware是用Python Flask编写的,并存储在Linux机器上 但是,他们要求我转到AWS Lambda服务。返回数据功能的限制为6米。当我处理GEOJson时,有时需要返回到15m 尽管AWS lambda的东西是无状态的,我可以提供一些方法来返回分区的数据,但这是有问题的,我认为有必要一次又一次地生成整个映射,直到我能够完成所有数据 有没有更好的方法来处理这个问题?我正在用Python编程。我会将数据发送到S3,并发出重定向或JSON响应,指

我有一个在AWS中运行的三层应用程序。midware是用Python Flask编写的,并存储在Linux机器上

但是,他们要求我转到AWS Lambda服务。返回数据功能的限制为6米。当我处理GEOJson时,有时需要返回到15m

尽管AWS lambda的东西是无状态的,我可以提供一些方法来返回分区的数据,但这是有问题的,我认为有必要一次又一次地生成整个映射,直到我能够完成所有数据


有没有更好的方法来处理这个问题?我正在用Python编程。

我会将数据发送到S3,并发出重定向或JSON响应,指向S3上的URL(如果数据应该是安全的)。如果数据是长期存在的,你可以把它留在那里;如果没有,您可以使用S3让文件在24小时左右后自动删除。

我会将数据发送到S3,并发出重定向或JSON响应,指向S3上的URL(如果数据应该是安全的)。如果数据是长期存在的,你可以把它留在那里;如果没有,您可以使用S3让文件在24小时左右后自动删除。

如果您也控制了接收这些数据的客户端,则可以发送压缩结果,然后将其解压缩到客户端。因此,您也可以发送15MB的响应,在压缩时会变得非常小

或者,您可以发送整个响应的一个片段,其中包含一个令牌或指示客户端响应未完成的内容。然后,客户端将使用该令牌发出另一个请求以获取下一个片段,依此类推,直到没有更多的片段。此时,客户端可以连接所有片段以获得完整响应


说到6MB的限制,我希望在某个时候我们能够设置最大有效负载大小。由于6MB在大多数情况下都可以,但并非所有情况下都可以

如果您也控制了接收这些数据的客户端,那么您可以发送一个压缩结果,然后将其解压缩到客户端。因此,您也可以发送15MB的响应,在压缩时会变得非常小

或者,您可以发送整个响应的一个片段,其中包含一个令牌或指示客户端响应未完成的内容。然后,客户端将使用该令牌发出另一个请求以获取下一个片段,依此类推,直到没有更多的片段。此时,客户端可以连接所有片段以获得完整响应


说到6MB的限制,我希望在某个时候我们能够设置最大有效负载大小。由于6MB在大多数情况下都可以,但并非所有情况下都可以,因此您可以使用预先签名的S3URL进行上传,使用该URL不会受到负载大小的限制

  • 获取对API网关的HTTP Get请求,然后Lambda函数Get生成预签名URL并返回它预签名的S3URL
  • 然后,客户端使用预先签名的S3URL直接将内容更新到s3

  • 您可以使用预先签名的S3URL进行上传,使用此URL将不受负载大小的限制

  • 获取对API网关的HTTP Get请求,然后Lambda函数Get生成预签名URL并返回它预签名的S3URL
  • 然后,客户端使用预先签名的S3URL直接将内容更新到s3

  • 我是这样想的,但在我看来这有点奇怪,即在磁盘上保存一些东西以返回函数调用的结果。在磁盘上为这类事情生成临时文件(通常是本地磁盘)并不少见,15MB文件的Lambda到S3的传输时间应该不到一秒钟。@ceejayoz谢谢你的回答!我不知道lambda写入s3的文件大小是否有上限?我找不到任何关于这方面的细节。我是这样想的,但在我看来似乎有点奇怪,即,在磁盘上保存一些东西以返回函数调用的结果。在磁盘上为这类事情生成临时文件(通常是本地磁盘)并不少见,15MB文件的Lambda到S3的传输时间应该不到一秒钟。@ceejayoz谢谢你的回答!我不知道lambda写入s3的文件大小是否有上限?我找不到任何细节。我想我会实现代币的想法。缺点是需要努力从数据库获取数据,并且需要重复sql语句。我认为如果我们需要更大的有效载荷,亚马逊可以要求我们更多的钱。好吧,Lambda的成本现在是荒谬的,所以我不会为获得更大的有效载荷而费心一点加薪。最好的情况是在Lambda函数中设置,这样你就可以为你实际使用的东西付费,比如RAM amountI,我想我会实现令牌的想法。缺点是需要努力从数据库获取数据,并且需要重复sql语句。我认为如果我们需要更大的有效载荷,亚马逊可以要求我们更多的钱。好吧,Lambda的成本现在是荒谬的,所以我不会为获得更大的有效载荷而费心一点加薪。最好的情况是Lambda函数中的一个设置,这样您就可以为实际使用的内存量付费