解决方案设计:
代码示例(Python):
import boto3
def lambda_handler(event, context):
# 连接到SQS队列
sqs = boto3.client('sqs')
source_queue_url = '主队列URL'
backup_queue_url = '备份队列URL'
# 获取主队列中的消息
response = sqs.receive_message(
QueueUrl=source_queue_url,
AttributeNames=['All'],
MaxNumberOfMessages=10,
MessageAttributeNames=['All'],
VisibilityTimeout=0,
WaitTimeSeconds=0
)
# 复制消息到备份队列
if 'Messages' in response:
for message in response['Messages']:
response = sqs.send_message(
QueueUrl=backup_queue_url,
MessageBody=message['Body'],
MessageAttributes=message['MessageAttributes']
)
# 删除已备份的消息
sqs.delete_message(
QueueUrl=source_queue_url,
ReceiptHandle=message['ReceiptHandle']
)
return {
'statusCode': 200,
'body': 'Backup process complete'
}
请注意,上述代码仅为示例,并假设您已正确配置了AWS SDK和IAM角色。您需要根据自己的需求进行适当的修改和配置。