GoogleCloudPlatform / functions-framework-nodejs

FaaS (Function as a service) framework for writing portable Node.js functions
Apache License 2.0
1.28k stars 158 forks source link

Receive CloudEvent and URL query parameters #606

Open astanet opened 2 months ago

astanet commented 2 months ago

CloudEvent signature type function is really useful.

I'm working on build a flow as below.

Pub/Sub topic A -> Eventarc A -v
Pub/Sub topic B -> Eventarc B ---> Function
Pub/Sub topic C -> Eventarc C -^

I would like to receive CloudEvents from several topics in the same Function instance and adjust the processing somewhat for each topic.

Eventarc allows to specify a service URL path when invoking a destination Function. So, I adjust the behavior of Function to fit the Pub/Sub Topic by using URL query parameters like /?mailTo=foo@example.com, /?mailTo=bar@example.com and so on. This service URL path can be easily edited from the Cloud Console for ease of operation.

The current CloudEvent signature Function does not seem to have a way to obtain URL query parameters. So I use the http signature type Function and unmarshall the Pub/Sub message and control the http response myself.

If we can use URL query parameters in CloudEvent signature type, we can build a more convenient and flexible system. Is there a way to recieve URL query parameters in CloudEvent signature Function? Or is there another better way?

Thanks.

caozhuozi commented 2 days ago

any updates?