AWS Lambda 对于请求的负载大小有限制,当使用 pg-query 或 JSONStream 库时,可能会遇到负载大小超出限制的问题。 解决办法是将数据拆分成多个较小的批处理,以确保负载大小在限制范围内。 以下是拆分 JSON 文件的示例代码:
import json import boto3
s3 = boto3.resource('s3') bucket_name = 'my-bucket' key = 'path/to/my/file.json'
obj = s3.Object(bucket_name, key)
buffer_size = 8388608 # 8 MB while True: chunk = obj.get(Range=f'bytes={obj.content_length - buffer_size}-')['Body'].read() if not chunk: break process_chunk(json.loads(chunk))
def process_chunk(chunk): # Process the chunk of data