当我将Cloud Function部署到GCP(用Node.js编写)时,如何查看我的文件系统环境以进行调试?如果我想知道当前目录是什么,或者应用程序旁边有什么文件,怎么办?
答案 0 :(得分:2)
当我们部署Cloud Function时,将出现完整的Node.js环境。我们可以在其中运行任意Node.js逻辑。这包括日志记录信息,这些信息随后将显示在Stackdriver日志中。因此,我们可以记录当前工作目录路径以及当前目录中所有文件的列表。我们可以将其用作诊断辅助工具。这是一个示例:
const fs = require('fs');
exports.helloWorld = (req, res) => {
console.log(`CWD: ${process.cwd()}`);
fs.readdir('.', function (err, files) {
if (err) {
return console.log('Unable to scan directory: ' + err);
}
files.forEach(function (file) {
console.log(file);
});
res.status(200).send('Done!');
});
};
您可以将此逻辑合并到自己的应用中进行测试。
这是一个替代版本,显示了所有文件和子目录的递归列表。
const fs = require('fs');
const walk = function(dir) {
var results = [];
var list = fs.readdirSync(dir);
list.forEach(function(file) {
file = dir + '/' + file;
var stat = fs.statSync(file);
if (stat && stat.isDirectory()) {
results = results.concat(walk(file));
} else {
results.push(file);
}
});
return results;
}
exports.helloWorld = (req, res) => {
let message = req.query.message || req.body.message || 'Hello World!';
console.log(`CWD: ${process.cwd()}`);
console.log(`Dir Listing: ${walk('.')}`);
res.status(200).send('Done!');
};