Google云端函数包含私人图书馆
我正在寻找在节点编写自定义库,我想包括我的云function。 由于这是共享代码,我希望能够在所有云function中使用它。
编写共享代码库的最佳方法是什么,并且可以通过多个云function访问这些代码。
例如,假设我有两个云端函数,functionA和functionB。
我有一个名为“common.js”的节点JavaScript文件,它具有一个我希望公开给functionA和functionB的javascript函数。
exports.common = { log: function(message) { console.log('COMMON: ' + message); } };
所以在函数中,我想要求这个文件,并调用“common.log('test');”。
我把这看作是最基本的问题,但我实在无法在任何地方find答案。
非常感激任何的帮助。 这实际上是阻止我使用GCF作为现在和将来开发代码的唯一方法!
如果你使用gcloud
命令行工具来部署你的函数,它会上传你的本地目录中的所有文件,所以任何正常的Node.js做include / require的方法都应该工作。
在Node.js中,编写require('./lib/common')
将在lib
子目录中包含common.js
文件。 由于你的文件导出了一个名为common
的对象,你可以直接从require
返回的对象中引用它。 见下文。
文件布局
./ ../ index.js lib/common.js
index.js
// common.js exports a 'common' object, so reference that directly. var common = require('./lib/common').common; exports.helloWorld = function helloWorld(req, res) { common.log('An HTTP request has been made!'); res.status(200); }
部署
$ gcloud beta functions deploy helloWorld --stage-bucket=<bucket> --trigger-http
注意
1目前gcloud
不会上传npm_modules/
目录,除非你指定npm_modules/
--include-ignored-files
(参见gcloud docs )