首页 > 解决方案 > 我们可以使用 boto3 库调用具有大负载的 lambda 函数吗

问题描述

我想知道如何使用具有大负载的 boto3 库调用 lambda 函数。到目前为止,我可以使用小于 6 mb 的有效负载调用它。另外我想知道有效载荷的最大限制是多少。

一旦上述问题得到解决......我还有另一个疑问......我应该如何在调用函数中传递这个有效负载.. 早些时候我这样做如下:

lambda_payload = open('fileName.txt','r').read()
lambda_client.invoke( FunctionName='##FName',  InvocationType='Request Response', Payload=lambda_payload)

# arn copied is in the below format :
# arn:aws:s3:::dev-abc/fileName.txt

现在应该是什么我的新有效载荷..

标签: python-3.xaws-lambda

解决方案


lambda 的调用负载在同步调用时只能为 6MB,在异步调用时只能为 256KB。一个简单的解决方法是将您的有效负载上传到 S3 并将 S3 对象位置作为有效负载传递给您的 lambda。然后,您的 lambda 可以读取或流式传输 S3 对象的内容。

您可以将 S3 URI、S3 对象 ARN 或只是存储桶的名称和对象的名称作为字符串值添加到调用负载。然后,您可以在 lambda 函数中使用 boto3 来读出该文件的内容。

如果您需要更大的有效负载来执行上传,请查看预签名 S3 URL。这将允许您返回可用于直接上传到 S3 位置的 URL。


推荐阅读