You don’t even need a VM! Once you have the Docker container, use Cloud Run (instead of Cloud Functions) to execute it. You can launch Cloud Run from the scheduler.
It doesn’t matter here, but by using cloud run, you can handle multiple requests simultaneously. Tends to be cheaper than using VMs