New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Firebase Cloud Functions V2: setGlobalOptions Does Not Apply Region Correctly #1502
Comments
I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight. |
Hello @masanori-iwata. Is the issue that functions in another file don't get the region settings applied? |
While not the original author, I'm experiencing the same. And yes, for me I set setGlobalOptions in the index file but the functions themselves are in multiple other files. |
Yes. |
@masanori-iwata can you give the version of firebase --version |
the version is 13.0.2. |
I cannot reproduce this issue, unfortunately. Here's what I tried: // src/index.ts
import { setGlobalOptions } from "firebase-functions/v2/options";
import * as admin from "firebase-admin";
import { onRequest } from "firebase-functions/v2/https";
admin.initializeApp({
credential: admin.credential.applicationDefault(),
});
setGlobalOptions({ region: "asia-south1", maxInstances: 10 });
export const helloWorld = onRequest((_, res) => {
res.send("Hello from Firebase!");
});
export * from "./more-functions"; // src/more-functions.ts
import { onRequest } from "firebase-functions/v2/https";
import { onDocumentWritten } from "firebase-functions/v2/firestore";
export const anotherHelloWorld = onRequest((_, res) => {
res.send("Hello from another Firebase function!");
});
export const firestoreTrigger = onDocumentWritten(
"users/{userId}",
(context) => {
console.log("New user:", context.data?.after.data());
}
); I get the following in the terminal after running ✔ functions[helloWorld(asia-south1)] Successful update operation.
✔ functions[anotherHelloWorld(asia-south1)] Successful update operation.
✔ functions[firestoreTrigger(asia-south1)] Successful create operation. As you can see in the first file, I have set the global options only once, but it applies to all functions. Do note you have to select the region for V1 functions separately as |
Hey @exaby73, I found some interesting results:
|
@OutdatedGuy thanks for this input! I can reproduce it with a JS project. I'm guessing in TS, all files are bundled into a single file by // src/options.js
import { setGlobalOptions } from "firebase-functions/v2/options";
export function configureOptions() {
setGlobalOptions({ region: "asia-south1", maxInstances: 10 });
} That function can be called at the top of each file so that there is a single source of truth for global options |
Experiencing the same issue, using Typescript. index.ts:
Region is not applied to the functions when deployed. Unfortunately, using the workaround suggested by @exaby73 will result in the following errors:
|
@OskarGroth, it shouldn't be an issue as long as the options are the same (which is why I recommended having a global function called). But yes, I agree this is not ideal in the slightest. |
Related issues
[REQUIRED] Version info
node:
v18.7.0
firebase-functions:
v4.5.0
firebase-tools:
firebase-admin:
v11.11.1
[REQUIRED] Test case
In Firebase Cloud Functions V2, when using
setGlobalOptions
to set the region toasia-northeast1
, some Firestore trigger functions are still being initialized in the default regionus-central1
.[REQUIRED] Steps to reproduce
setGlobalOptions
to specify the region asasia-northeast1
.us-central1
instead of the specifiedasia-northeast1
.[REQUIRED] Expected behavior
All functions should respect the global options set, especially regarding the region. The expected behavior is that functions are initialized in the specified region
asia-northeast1
.[REQUIRED] Actual behavior
Functions such as Firestore triggers are being initialized in the
us-central1
region, despite thesetGlobalOptions
specifyingasia-northeast1
.code
log
Were you able to successfully deploy your functions?
Yes, the functions were deployed successfully, but the regional setting was not applied as expected.
The text was updated successfully, but these errors were encountered: