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 )