从 Google 云函数调用 gsutil 或 gcloud?

Invoking gsutil or gcloud from a Google cloud function?

我有一个 Google 带有 Cloud Functions 后端的 Firebase 应用程序。我正在使用 node.js 10 运行时,即 Ubuntu 18.04。用户可以将文件上传到 Google Cloud Storage,这会触发 GCF 功能。

我希望该功能执行的操作是将该文件复制到 Google Cloud Filestore(即带 L 的文件),Google 的新 NFS 可安装文件服务器。他们说通常的方法是从命令行使用 gsutil rsyncgcloud compute scp

我的问题是:这些命令中的一个或两个在 GCF 节点上可用吗?或者还有其他方法吗? (如果我可以将 Filestore 共享挂载到 GCF 实例上,那就太棒了,但我猜这很重要。)

根据官方文档Cloud Filestore documentation

Use Cloud Filestore to create fully managed NFS file servers on Google Cloud Platform (GCP) for use with applications running on Compute Engine virtual machines (VMs) instances or Google Kubernetes Engine clusters.

您无法在 GCF 上装载 Filestore。

此外,您不能从 Google 云函数 Writing Cloud Functions

执行 gsutil 或 gcloud 命令

Google Cloud Functions can be written in Node.js, Python, and Go, and are executed in language-specific runtimes

在此环境中使用基于 NFS 的存储不是一个好主意。 NFS 通过提供可挂载的文件系统来工作,这在 Cloud Functions 环境中不起作用,因为文件系统是 read only,/tmp 文件夹除外。

您应该考虑使用已经设置了应用程序默认凭据的云原生存储系统,例如 GCS。查看支持的服务列表 here