目前,我们正在在线模式下使用“firebase-functions-test”来测试我们的 firebase 功能(如此处所述 https://firebase.google.com/docs/functions/unit-testing),我们设置如下:
//setupTests.ts
import * as admin from 'firebase-admin';
const serviceAccount = require('./../test-service-account.json');
export const testEnv = require('firebase-functions-test')({
projectId: 'projectId',
credential: admin.credential.cert(serviceAccount),
storageBucket: 'projectId.appspot.com'
});
const testConfig = {
dropbox: {
token: 'dropboxToken',
working_dir: 'someFolder'
}
};
testEnv.mockConfig(testConfig);
// ensure default firebase app exists:
try {
admin.initializeApp();
} catch (e) {}
Run Code Online (Sandbox Code Playgroud)
我们希望在我们的测试中不再针对实际的 firestore 实例进行测试,而是使用模拟器。
我在网上找到的文档、问题和示例要么已经过时,要么描述了如何设置模拟器以测试安全规则或 Web 前端。
尝试使用 firebase.initializeAdminApp({ projectId: "my-test-project" });没有成功。
我也试过设置 FIRESTORE_EMULATOR_HOST=[::1]:8080,127.0.0.1:8080
所以问题是:如何在我的测试中初始化 firebaseApp,以便我的功能连接到 firestore 模拟器?
firebase firebase-tools google-cloud-functions google-cloud-firestore
语境
我正在 Cloud Run 上运行 SpringBoot 应用程序,该应用程序使用 Hikari 连接池连接到 postgres11 CloudSQL 数据库。我使用的是最小的 PSQL 实例(1vcpu/614mb/25 连接限制)。对于设置,我遵循了以下资源:
问题
部署第三个修订版后,出现以下错误:
FATAL: remaining connection slots are reserved for non-replication superuser connections
我发现了什么
默认连接池大小为 10,这就是为什么它在第三次部署时失败 (30 > 25)。
删除旧版本时,Cloud SQL 管理面板中显示的活动连接数会减少 10,并且下一次部署会成功。
问题
看来,旧的 Cloud Run 修订版一直处于“冷”状态,以维护其连接池。有没有办法关闭这些连接而不删除修订?
在最佳实践部分,它说:
...我们建议您使用支持连接池的客户端库,该连接池可以自动重新连接断开的客户端连接。”
鉴于旧版本似乎以某种方式设法维护其连接,在 Cloud Run 中管理连接池的推荐方法是什么?
谢谢!
postgresql google-cloud-sql google-cloud-platform hikaricp google-cloud-run
我的组织位于欧盟,因此我们在欧盟区域内创建了所有相关的 gcp 资源。
为了加快构建速度,我们在存储桶中维护了一个依赖缓存 zip,我们在构建开始时读取它,并在构建结束时写入,具体取决于依赖项是否已更改。
现在我想知道我们是否可以期望构建速度更快,如果我们使用位于美国区域内的存储桶,这让我想到了我的问题:
在哪个区域执行云构建构建?
google-cloud-storage google-cloud-platform google-cloud-build