У меня есть приложение Firebase, которое использует облачные функции для связи с экземпляром Google Cloud SQL.Эти облачные функции используются для выполнения действий 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, по одному для каждой функции. Правильно ли будет сказать, что для каждой загруженной функции есть новый экземпляр? Я пытаюсь понять, что происходит, когда я загружаю набор облачных функций.
Если так- нет ли надежного способа запуска кода миграции внутри глобальной функции в облачных функциях?