据我所知,Google Cloud Functions仅允许您部署NodeJ或Python脚本。
问题:我如何在 Google Cloud Functions 上部署简单的Hello_World.cpp?例如,编写一个hello world HTTP函数。
有哪些其他方法可以做到这一点?我想使用无服务器方法,因为它是最便宜的方法。因此,这就是为什么我要使用Google Cloud Functions。我是否必须使用docker才能运行C ++文件?我已经坚持了一段时间,任何指导或帮助都将不胜感激。
答案 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测试)
如何使用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
使用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安装后自动运行)