Running AWS lambda in serial (for a given parameter)
Use SQS with Lambda to accomplish this.
SQS supports 2 types of queues: Standard &amp; FIFO. FIFO is appropriate for your use case. Create a FIFO queue &amp; attach a Lambda function trigger to it. This causes the Lambda function to be triggered when a message arrives in the SQS queue. When you send a message to a FIFO queue, set the userId as the message group ID. This will ensure that messages from an individual user are only processed serially but messages from different users are processed in parallel.
Here's the relevant section from AWS Lambda documentation:

For FIFO queues, Lambda sends messages to your function in the order that it receives them. When you send a message to a FIFO queue, you specify a message group ID. Amazon SQS ensures that messages in the same group are delivered to Lambda in order. Lambda sorts the messages into groups and sends only one batch at a time for a group. If the function returns an error, all retries are attempted on the affected messages before Lambda receives additional messages from the same group. Your function can scale in concurrency to the number of active message groups.