Basically in cloud architecture, request time out time is around 60 sec, but you try to insert over thousands records in one transaction , it takes more than 60 seconds, that’s why your request always fail.
There’s better ways to insert bigger amount of records,
- Task Queues
- Cron or scheduled task
I think task queue is better for your problem.
watch this video, you can get super idea about task queues
Task queue & cron jobs