问题标签 [google-cloud-functions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
811 浏览

google-cloud-platform - 在 Google Cloud Functions 上运行不受信任的代码

我实际上还没有被列入使用谷歌云功能的白名单,但我有这个问题:

  • http函数可以访问我的谷歌云上下文吗?

我不想运行不受信任的 javascript 代码,所以我想使用一个函数作为沙箱,用户可以在其中运行简单的 javascripts。

0 投票
1 回答
6306 浏览

google-cloud-platform - 只有 POST 请求可用于 Google Cloud Functions HTTP 触发器

我希望将一个 REST API 部署到 Google Cloud Functions,但是部署文档似乎表明只能使用 POST 请求:

对函数端点(部署输出的 web_trigger.url 参数)的每个 HTTP POST 请求都会触发函数执行。函数执行的结果将在响应正文中返回。- https://cloud.google.com/functions/docs/deploying/

理想情况下,我希望将路径与通配符和跨不同的 HTTP 方法相关联,例如

通配符值在函数上下文中填充一些参数对象,如 Rails、Hapijs 等。

想知道 Cloud Functions 是否可以实现上述功能,如果不能,将来是否会实现?

0 投票
1 回答
2631 浏览

google-cloud-functions - 从同一个仓库部署多个 Google Cloud Functions

Google Cloud Functions 的文档有点模糊 - 我了解如何部署包含在其中的单个功能index.js- 即使在特定目录中,但如何部署位于同一存储库中的多个云功能?

AWS Lambda 允许您指定特定的文件和函数名称:

Lambda 还允许您部署仅包含运行所需文件的 zip 文件,省略所有可选的传递 npm 依赖项及其资源。对于某些库(例如 Oracle DB),包括node-modules/**会显着增加部署时间,并可能超过存储限制(它在 AWS Lambda 上确实如此)。

我可以使用 Google Cloud Function 部署管理的最佳方法是:

$ gcloud alpha functions deploy my-function \ --trigger-http --source-url https://github.com/user-name/my-repo.git \ --source-branch master \ --source-path lib/foo/bar --entry-point myHandler

...但我的理解是,它部署lib/foo/bar/index.js的内容包含function myHandler(req, res) {}...以及连接在同一文件中的所有依赖项?这根本没有意义——就像我说的,文档有点含糊。

0 投票
1 回答
1275 浏览

firebase - Firebase 云函数触发器

据我所知,目前 Cloud Functions 不支持从 Firebase 触发功能。

现在我计划使用一个基本的引擎实例来触发基于队列的函数。

这是正确的方法吗?还是应该在数据插入数据库后直接从客户端设备触发云功能?

谢谢你

0 投票
3 回答
14610 浏览

javascript - Access-Control-Allow-Origin 不起作用 Google Cloud Functions GCF

我在这里感觉自己像个新手,但我正在尝试从浏览器运行一个简单的 AJAX 请求来访问 GCF,Chrome 正在报告:

XMLHttpRequest 无法加载 https://us-central1-bustling-opus-830.cloudfunctions.net/Authenticate。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问来源“ https://beast.reachboarding.com.au ”。

我有一个名为 Authenticate 的函数(如上所示),它使用一个名为:

我使用 gsutil 使用以下 JSON 文件设置 CORS:

使用以下命令:

然后从相应的 get 命令中获取以下输出:

我正在使用创建新函数时提供的默认示例代码,如下所述:

以及带有以下 Javascript 的简单 HTML:

这是导致错误的原因。

在我的 DEV 控制台中,我可以看到网络请求通过。以下是我得到的 HTTP 响应标头:

我本来希望在响应标头中看到 Access-Control-Allow-Origin 标头以表明它允许 * 但我绝对没有看到它。

疯狂的是,当我查看 Network 项目并单击 Response 时,我得到:

这表明所有事情都是平等的,它实际上运行了!

如果之前已经回答过这个问题,我深表歉意,但我已经搜索了许多不同的关键字,但似乎没有任何东西可以解决我的问题。我认为用新的眼光看待这个问题(以及一些体面的专业知识)会有所帮助。

提前致谢!

0 投票
4 回答
6538 浏览

google-cloud-platform - Google Cloud Platform HTTP 函数是否支持路由参数?

这个问题比我想来这里的问题要简单一些,但我一直在努力寻找答案,但我绝对不能——

谷歌云平台 HTTP 函数是否支持路由参数,如此处?http://expressjs.com/en/guide/routing.html#route-parameters

具体来说,我看到谷歌云平台 HTTP 函数似乎使用 Express 作为基础,但我看到的所有函数的任何示例都已经只是运行了 req 和 res 参数,没有别的。我可以访问正文中的数据,但这不允许我从路由中提取参数,例如在传递给“/users/:userId/books/:bookId”的请求中查找图书 ID。如果无法指定路径的哪个部分对应于此处的哪个名称,我看不出它们如何填充到 req.params 中。

我知道我总是可以通过其他方式传递它们,但这更干净,更符合我们想要使用的设置,所以如果可能的话,我真的很想让它工作。有什么方法可以做到这一点,我完全错过了,还是根本不支持?

0 投票
1 回答
667 浏览

javascript - 如何从我的 javascript Web 应用程序调用谷歌云功能

我试图弄清楚如何使用 jQuery 的 .ajax() 函数调用我从我的 Javascript Web 应用程序创建的谷歌云函数。

当我调用端点时我遇到了 Access-Control-Allow-Origin 问题,我应该做些什么特别的事情。

我使用了 gsutil cors set 并推送了一个带有 origin:["*"] 的 CORS 文件,但我仍然没有让它工作。

任何帮助将不胜感激。

0 投票
2 回答
822 浏览

node.js - 如何将我的 nodejs 库包含在 Google Cloud Functions 中

我刚刚制作了我的第一个不错的 Google Cloud Function,现在我想将它重构为库。

例如,我有我的云函数,我想需要一个我创建的库,而不是从 NPM 安装的东西。

如何将这些库部署到 Google Cloud Functions?

0 投票
2 回答
3887 浏览

node.js - Google Cloud Functions 包含私有库

我正在寻找在节点中编写一个自定义库,我想将它包含在我的云函数中。由于这是共享代码,我希望能够在我的所有 Cloud Functions 中使用它。

编写共享代码库并让多个 Cloud Functions 访问该库的最佳方式是什么?

例如,假设我有两个 Cloud Functions,functionA 和 functionB。

我有一个名为“common.js”的节点 javascript 文件,它有一个我想向 functionA 和 functionB 公开的 javascript 函数。

所以在functionA中我想要这个文件并调用“common.log('test');”。

我认为这是最基本的问题,但老实说,我无法在任何地方找到答案。

非常感激任何的帮助。这实际上是唯一阻止我使用 GCF 作为我现在和未来开发代码的方式的事情!

0 投票
1 回答
822 浏览

python - 如何通过 Cloud Function 调度用 Python 编写的 Dataflow 管道?

本文介绍了如何通过 Cloud Function 执行用 java 编写的管道。但是,我正在尝试使用用 python 编写的管道来完成此操作。

在使用 python 的 virtualenv 环境执行本地云函数时,我能够成功地做到这一点。这是在打包为 zip 之前。

};

但是,当我将函数实际部署到 GCP 并从那里运行时,管道永远不会执行。

对此的任何见解将不胜感激。

以下是运行已部署函数时的日志:

更新:

有一个错误,我没有正确注销:

我已经联系了 Cloud Functions 团队,他们随后提交了一份错误报告。