You could think of it in terms of two vectors of complexity.
If you aren’t sure and what a solid template to work from, and you just want to run a function, Cloud Functions
If you need a bit more wiggle room, but you still want that sort of framework, App Engine
If you’re already used to containers, Cloud Run
If you want more than just containers, Compute Engine.
But of course it’s more complex than that