Open sconix opened 4 months ago
Starting in this week's release, the serviceAccount
that the function is configured to run as is the service account the associated service is configured to authorize its requests to the function with.
@inlined First of all thanks for the fixes, secondly I can confirm onSchedule, beforeUserCreated and beforeUserSignedIn to work now with the latest firebase-tools version, but still get the error of default compute-engine SA not existing when deploying onDocumentWritten trigger functions. Let me know if you want me to create a new issue about this.
Will look into it this week. Also, FYI, I've submitted a proposal to add triggerServiceAccount
to the function options. I would not be surprised if the API council makes me revert this change to use serviceAccount
as a backup since it was a breaking change that broke someone and you may have to use this new field in a future release.
@inlined any progress on this? At least have not spotted any fixes yet in the release notes regarding this. We are currently stuck in gen1/gen2 hybrid setup because of this issue so even not super critical would be really nice to be able to move fully to gen2 stuff. Thank you again for looking into this.
but still get the error of default compute-engine SA not existing when deploying onDocumentWritten trigger functions
We ran into this issue as well.
Even though the function now supports specifying custom service accounts, it seems Firebase CLI (firebase deploy
) is hardcoded to only work with the default compute-engine SA:
https://github.com/firebase/firebase-tools/blob/e1ff423e538b0e520887915dcdbb202546d76a7c/src/deploy/functions/checkIam.ts#L201
https://github.com/firebase/firebase-tools/blob/e1ff423e538b0e520887915dcdbb202546d76a7c/src/deploy/functions/checkIam.ts#L156-L157
Environment info
firebase-tools: 13.3.1
Platform: Debian
Test case
This happens also with onDocument* firestore triggers, basically anything that uses EventArc. GCloud tool seems to have separate trigger-service-account input argument so it is at least possible to define the service account to be used, but can not get it to work with firebase cloud functions. Have tried using the setGlobalOptions as well, but no luck with that neither.
This used to be an issue with the onCall and onRequest as well, but those now work with the latest version of firebase-tools.
Steps to reproduce
Have any kind of trigger cloud function and configure it to use custom service account and have a project that does not have the default compute engine service account which EventArc uses when no service account is defined.
Expected behavior
Deploy works without the error about missing default compute engine service account and the defined service account is used.
Actual behavior