Home > OS >  How To Use Event Arc Locally For Cloud Run?
How To Use Event Arc Locally For Cloud Run?

Time:12-29

So I am switching from cloud functions to Cloud Run and I am trying to figure out how to run Event Arc locally. I know you can set up an emulator for Eventarc using Firebase Emulator but Im not sure to have it trigger one of my Cloud Run functions when I write to my local Firestore db. Can someone please let me know how this can be done?

I did see one vague answer here:

Emulation of event-driven design in Cloud Run while developing locally?

But to me this doesn't make sense given that if Im using the local DB and local functions how would a remote instance work with my local dev environment. If this is possible please let me know and how I can accomplish this. Thanks.

CodePudding user response:

It's not an easy task and the team is working to make the local tests easier. For now, I can share my hack.

First of all, you have to know that eventarc is roughtly a wrapper that create several resources behind the scene, especially a PubSub topic and Push subscription to your Cloud Run service. Because of that, an eventarc event is no more than a POST request with the event content as body.


For my hack, I have a Cloud Run service, on GCP, that log the headers and body of any incoming requests. I set up an eventarc with that service as target, and I trigger an event.

I go to the logs, copy the headers and the body of the received event, and I create a curl POST request with that.

Then, when I want to test my local service, I reuse my curl POST request, and submit it to my localhost server.

  • Related