要解决AWS API Gateway + SQS超过256KB的数据的问题,可以使用以下解决方法:
以下是一个示例代码,演示如何在API Gateway中使用分段传输数据到SQS队列:
import boto3
def send_large_data(event, context):
sqs = boto3.client('sqs')
data = event.get('data') # 获取数据
chunk_size = 256 * 1024 # 设置每个块的大小为256KB
chunks = [data[i:i+chunk_size] for i in range(0, len(data), chunk_size)] # 将数据分割成块
for i, chunk in enumerate(chunks):
sqs.send_message(
QueueUrl='YOUR_SQS_QUEUE_URL',
MessageBody=chunk,
MessageGroupId='large_data',
MessageDeduplicationId=f'chunk-{i}'
)
以下是一个示例代码,演示如何在Lambda函数中处理超过256KB的数据并将其发送到SQS队列:
import boto3
def lambda_handler(event, context):
sqs = boto3.client('sqs')
data = event.get('data') # 获取数据
response = sqs.send_message(
QueueUrl='YOUR_SQS_QUEUE_URL',
MessageBody=data
)
return {
'statusCode': 200,
'body': response
}
这两种方法都可以在API Gateway和SQS之间传输超过256KB的数据。根据具体的需求和使用情况,选择适合自己的方法。