要解决Lambda成功完成工作但未从SQS中删除消息的问题,可以使用以下代码示例来重新发送消息进行处理:
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.sqs.AmazonSQS;
import com.amazonaws.services.sqs.AmazonSQSClientBuilder;
import com.amazonaws.services.sqs.model.DeleteMessageRequest;
import com.amazonaws.services.sqs.model.Message;
public class MyLambdaFunction implements RequestHandler
上述代码示例中,我们首先从Lambda事件的上下文中获取消息的ID,然后使用getMessageFromSqs
方法从SQS中获取相应的消息。如果找到了消息,我们会执行处理消息的逻辑,并使用deleteMessageFromSqs
方法删除消息。
请确保将your_queue_url
替换为实际的SQS队列URL。此外,您还可以根据实际需求自定义processMessage
方法来处理消息。最后,将返回"Success"表示Lambda函数已成功处理消息。