如何在Google Cloud Functions上运行C ++文件?

时间:2018-10-03 06:47:14

标签: c++ google-cloud-platform google-cloud-functions gcloud

据我所知,Google Cloud Functions仅允许您部署NodeJ或Python脚本。

问题:我如何在 Google Cloud Functions 上部署简单的Hello_World.cpp?例如,编写一个hello world HTTP函数。

有哪些其他方法可以做到这一点?我想使用无服务器方法,因为它是最便宜的方法。因此,这就是为什么我要使用Google Cloud Functions。我是否必须使用docker才能运行C ++文件?我已经坚持了一段时间,任何指导或帮助都将不胜感激。

4 个答案:

答案 0 :(得分:2)

您不能在Cloud Functions期间使用C ++。您只能使用Node.js 6.14,Node.js 8.11.1(测试版)和Python 3.7(也是测试版)。

如果您希望通过无服务器方法在GCP中使用C ++,我最好的建议是在App Engine中运行自己的Custom Runtime。您仍然需要配置一些实例选项,但不必管理服务器等。

答案 1 :(得分:1)

您只能使用App Engine灵活环境(当然,也可以使用标准VM体系结构Compute Engine)。从文档中摘录(https://cloud.google.com/appengine/docs/flexible/):

Runtimes - The flexible environment includes native support for Java 8 
(with no web-serving framework), Eclipse Jetty 9, Python 2.7 and Python 3.6,
 Node.js, Ruby, PHP, .NET core, and Go. Developers can customize these 
runtimes or provide their own runtime by supplying a custom Docker image 
or Dockerfile from the open source community.

作为一个有趣的旁注,无服务器Google容器将为您提供部署无服务器风格的Docker化应用程序的机会(实际上,它基于Google Cloud Functions技术构建)。目前处于Alpha阶段。

答案 2 :(得分:1)

您可以使用emscripten将C ++函数编译为WebAssembly模块。然后,您可以从一个小的nodejs粘合代码中调用它。

我在这里为您构建了一个示例: https://github.com/ArthurSonzogni/gcloud-cpp-starter

答案 3 :(得分:-1)

您可以通过node.js在Google云功能上运行C ++代码(已通过node.js 10测试)

  1. 如何使用C ++和N-API(node-addon-api)https://medium.com/@atulanand94/beginners-guide-to-writing-nodejs-addons-using-c-and-n-api-node-addon-api-9b3b718a9a7f

  2. 使用https://console.cloud.google.com/functions并单击CREATE FUNCTION上载.zip或gcloud函数deploy --runtime nodejs10 --trigger-http

  

诀窍是,当您压缩文件时,您需要删除/ build和/ node_modules文件夹,然后使用cd命令行对index.js文件夹和'zip your_name.zip -r *'

ps。当我使用firebase deploy --only函数时,它将出错,因为它不知道文件addon.node格式(实际上,它不应该读取此文件,因为它需要重新编译),但是我想我们是否使用gcloud函数命令行对于.build和/ node_modules使用.gcloudignore,它将成功https://cloud.google.com/functions/docs/deploying/filesystem

它如何工作

我认为当您将node.js源代码部署到云函数时,它将运行npm install,并且您的C ++代码也将被编译(例如npm run build将在npm安装后自动运行)