在 Google Cloud Function 中运行 gsutil 命令

Joh*_*ews 4 python google-cloud-storage gsutil google-cloud-platform google-cloud-functions

我想每 x 分钟运行一次 gsutil 命令作为云函数。我尝试了以下方法:

# main.py
import os

def sync():
     line = "gsutil -m rsync -r gs://some_bucket/folder gs://other_bucket/other_folder"
     os.system(line)
Run Code Online (Sandbox Code Playgroud)

当云函数被触发时,该行的执行不起作用(即文件没有从一个存储桶复制到另一个存储桶)。但是,当我在 Pycharm 本地或使用 cmd 本地运行它时,它确实工作正常。与云功能有什么区别?

gui*_*ere 5

您可以使用Cloud Run来实现此目的。您只需在代码中执行很少的更改。

创建一个安装了 gsutil 和 python 的容器,例如gcr.io/google.com/cloudsdktool/cloud-sdk作为基础镜像

请妥善保管部署 Cloud Run 时使用的服务帐户,授予访问您的存储桶的正确权限

如果您需要更多指导,请告诉我