I've set up a Cloud Run instance that will be used in the future for an event. Is there any way to turn it off until that time? I can't seem to find a stop or pause button.
Don't know if that's possible but a workaround is...
...Since a Cloud Run service only runs when it receives an HTTP request (it 'essentially goes down' when it's not responding to requests), you should secure the service i.e. deploy it with no-allow-unauthenticated flag set so that random people across the web can't access it. It will then only respond to authenticated calls and so it will only respond when you start invoking it yourself (in the future) because you'll be the one with the necessary token....
We have a blog article on how to secure Cloud Run service and invoke them.
Maybe an alternative thought would be to front-end the Cloud Run with a load balancer as described in this article:
https://medium.com/google-cloud/cloud-run-and-load-balancing-go-beyond-your-own-project-adfa1c8b001d
The thinking here would then be that there would be a published endpoint (that of the load balancer) that doesn't change. While the service is "off", the load balancer could point the resolution of the request to a stub or some other service that returns a "not-available" status code. To switch on the service would mean pointing the load balancer to the Cloud Run endpoint. You didn't mention what was being served by Cloud Run ... is it an API service (REST) or are you serving up HTML (web pages)?
Agree with previous post - another way is to build a Cloud Build Trigger with the code in the repo - test deployment and kill the service. When the event comes up - execute the trigger