From what I've seen with serverless, it doesn't look that hard to build your own runtime for it if you did want to run outside of your vendor and avoid lock-in. It would turn your stuff back into a stack of containers, of course.
Nobody prevents you to write your serverless function so it needs a block store of a certain size or ingress at a certain port.