我在Firebase的免费层上,我有一个由实时数据库写入触发的云功能。然后,该功能从Firebase Storage(~8 Mb)下载文件,进行一些处理,并写回实时数据库。我在整个函数中添加了一些日志记录语句,以找出它花了这么长时间的原因。
该功能在<我在本地运行10秒钟。 为什么云功能需要这么长的时间?
功能/ index.js
exports.doStuff = functions.database.ref('/my/path/{pushId}')
.onWrite(event => {
const implementation = require('./implementation');
// Variables omitted for brevity...
implementation.process(...variables);
return true;
});
功能/ implementation.js
function process(...variables) {
const Storage = require('@google-cloud/storage');
const storage = new Storage();
// Variables omitted for brevity...
const options = {
destination: tempFilePath,
};
storage
.bucket(bucketName)
.file(srcFilename)
.download(options)
.then(() => {
console.log('This takes 3+ minutes for an 8 Mb file');
doStuffWithDownloadedFile(tempFilePath);
})
.catch(error => {
console.error('ERROR: ', error);
});
}