gpt4 book ai didi

python-3.x - 当处理程序在 AWS lambda 中超时时如何处理剩余的有效负载?

转载 作者:行者123 更新时间:2023-12-04 10:14:08 25 4
gpt4 key购买 nike

我正在尝试在 AWS lambda 中将数据从 CSV 转换为 JSON(使用 Python 3)。文件大小为 65 MB,因此它在完成过程之前获取超时并且整个执行获取失败。

我需要知道如何处理这种情况,即 AWS Lambda 应该能够在超时时间内处理最大的数据集,而剩余的有效负载应该保留在 S3 存储桶中。

下面是转换代码

import json
import boto3
import csv
import os
json_content = {}


def lambda_handler(event, context):
s3_source = boto3.resource('s3')
if event:
fileObj=event['Records'][0]
fileName=str(fileObj['s3']['object']['key'])
eventTime =fileObj['eventTime']
fileObject= s3_source.Object('inputs3', fileName)
data = fileObject.get()['Body'].read().decode('utf-8-sig').split()
arr=[]
csvreader= csv.DictReader(data)
newFile=getFile_extensionName(fileName,extension_type)
for row in csvreader:
arr.append(dict(row))
json_content['Employees']=arr
print("Json Content is",json_content)
s3_source.Object('s3-output', "output.json").put(Body=(bytes(json.dumps(json_content).encode('utf-8-sig'))))
print("File Uploaded")

return {
'statusCode': 200,
'fileObject':eventTime,
}

AWS Lambda 函数配置:

内存:640 MB

超时:15 分钟

最佳答案

由于您的功能超时,您只有两个选择:

  • 增加分配的内存量 .这也会增加分配给该函数的 CPU 数量,因此它应该运行得更快。但是,这可能不足以避免超时。

  • 或者
  • 不要使用 AWS Lambda .

  • AWS Lambda 函数最常见的用例是小型微服务,有时只运行几秒钟甚至几分之一秒。

    如果您的用例运行时间超过 15 分钟,那么它可能不是 AWS Lambda 的良好候选者。

    您可以查看替代方案,例如在 Amazon EC2 实例上运行您的代码或使用 Fargate 容器。

    关于python-3.x - 当处理程序在 AWS lambda 中超时时如何处理剩余的有效负载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61166690/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com