我有一个带有云功能后端的Google Firebase应用程序。我使用的是node.js 10运行时,它是Ubuntu 18.04。用户可以将文件上传到谷歌云存储,这将触发GCF功能。
我希望该函数将该文件复制到Google Cloud Filestore(即带有L的file(,这是Google新的NFS可装载文件服务器。他们说,通常的方法是从命令行使用gsutil rsync
或gcloud compute scp
。
我的问题是:这些命令中的一个或两个在GCF节点上可用吗?或者还有别的办法吗?(如果我能在GCF实例上挂载Filestore共享,那就太棒了,但我猜这很重要。(
在这种环境中使用基于NFS的存储不是一个好主意。NFS的工作原理是提供一个可装载的文件系统,这在Cloud Functions环境中是不起作用的,因为文件系统是只读的,/tmp文件夹除外。
您应该考虑使用云原生存储系统,如已经设置了应用程序默认凭据的GCS。请在此处查看支持的服务列表。
根据官方文档Cloud Filestore文档
使用云文件存储在Google上创建完全托管的NFS文件服务器与运行在Compute上的应用程序一起使用的云平台(GCP(引擎虚拟机(VM(实例或Google Kubernetes引擎集群。
您不能在GCF上装载文件存储。
此外,您不能从Google云函数"编写云函数"执行gsutil或gcloud命令。
谷歌云函数可以用Node.js、Python和Go编写在特定语言的运行时中执行