【发布时间】:2019-03-09 17:23:51
【问题描述】:
我有一个使用 Cloud Functions 与 Google Cloud SQL 实例通信的 firebase 应用程序。这些云函数用于执行 CRUD 操作。我想确保数据库反映 CRUD 操作,因此,每次推送新功能代码时都运行迁移代码,以确保数据库始终是最新的。
我在一个全局函数中这样做
const functions = require('firebase-functions')
const pg = require('pg')
// Create if not exists database
(function() {
console.log('create db...')
})()
exports.helloWorld = functions.https.onRequest((request, response) => {
console.log('Hello from Firebase function log!')
response.send('Hello from Firebase!')
})
exports.helloWorld2 = functions.https.onRequest((request, response) => {
console.log('Hello from Firebase function log 2!')
response.send('Hello from Firebase 2!')
})
当我部署时,此控制台日志会运行两次。
现在我了解到,正如他们的文档中所述,无法知道 Cloud Functions 将为这些函数启动多少个实例:
预计包含函数定义的函数文件中的全局范围在每次冷启动时执行,但如果实例已经初始化则不会执行。`
如果我添加第三个函数,此控制台日志现在在日志中显示 3 次,而不是 2 次,每个函数显示一次。 说每个上传的函数都有一个新实例是否正确?我想了解当我上传一组云函数时会发生什么。
如果是这样 - 是否没有可靠的方法在云函数中的全局函数内运行迁移代码?
【问题讨论】:
标签: javascript firebase google-cloud-platform google-cloud-functions