You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
FunctionsFramework::cloudEvent('eventarc-event-name', 'myFunctionName');
function myFunctionName(\CloudEvents\V1\CloudEventInterface$event)
This runs locally, but when I run it on Cloud Run the it tells me I have to hint Google\CloudFunctions\CloudEvent, but if I do that it wants CloudEventInterface instead. Putting either results in the other being required.
PHP message: PHP Fatal error: Uncaught LogicException: Your function must have "Google\CloudFunctions\CloudEvent" as the typehint for the first argument in /workspace/vendor/google/cloud-functions-framework/src/CloudEventFunctionWrapper.php:65
I can't repeat this locally. FunctionsFramework calls the following, which locally always forces CloudEventInterface, and I can debug this right through to the Reflection check on line 71 of CloudEventFunctionWrapper
FunctionsFramework::cloudEvent($target, true) marshals to the \CloudEvents\V1\CloudEventInterface() (second parameter is true), but when the function is actually run via the Invoker, line 59, it marshals to \Google\CloudFunctions\CloudEvent() (second parameter is false).
So it is not possible to call FunctionsFramework::cloudEvent() as documented, since a function parameter can't have both types (or, at least, this specific implementation can't read more than one).
I'm wondering if the use of \Google\CloudFunctions\CloudEvent() is incorrect, and it should be \CloudEvents\V1\CloudEvent().
Having issues with FunctionsFramework::cloudEvent() when running in Cloud Functions (but not locally) as documented at https://cloud.google.com/functions/docs/tutorials/pubsub#preparing_the_application.
I'm calling the following:
This runs locally, but when I run it on Cloud Run the it tells me I have to hint Google\CloudFunctions\CloudEvent, but if I do that it wants CloudEventInterface instead. Putting either results in the other being required.
I can't repeat this locally. FunctionsFramework calls the following, which locally always forces CloudEventInterface, and I can debug this right through to the Reflection check on line 71 of CloudEventFunctionWrapper
If I do both (which seems probably unintended and wrong anyway), I get the following error:
I'm not even sure how to proceed here, as this is the officially documented approach, but doesn't appear in the readme for this project at all.
The text was updated successfully, but these errors were encountered: