Python 在Google云函数中运行gsutil命令

Python 在Google云函数中运行gsutil命令,python,google-cloud-platform,google-cloud-functions,google-cloud-storage,gsutil,Python,Google Cloud Platform,Google Cloud Functions,Google Cloud Storage,Gsutil,我想每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) 当云函数被触发时,行的执行不起作用(或者文件没有从一个bucket复制到另一个bucket)。然而,当我在Pycharm或cmd中本地运行它时

我想每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)

当云函数被触发时,行的执行不起作用(或者文件没有从一个bucket复制到另一个bucket)。然而,当我在Pycharm或cmd中本地运行它时,它确实工作得很好。云功能有什么区别?

云功能服务器实例没有安装gsutil。它在您的本地计算机上工作,因为您已经在那里安装和配置了它


我建议尝试找到一种方法来使用python云存储SDK实现您想要的功能。或者了解如何在函数中部署gsutil,以及如何从代码中配置和调用它,但这可能非常困难。

云函数服务器实例没有安装gsutil。它在您的本地计算机上工作,因为您已经在那里安装和配置了它


我建议尝试找到一种方法来使用python云存储SDK实现您想要的功能。或者弄清楚如何在函数中部署gsutil,以及如何从代码中配置和调用它,但这可能非常困难。

没有简单的选项


我认为云功能的最佳选择是使用
googlecloudstorage

没有直接的选择

我认为最好的云功能是使用
googlecloudstorage

您可以使用它。在代码中要执行的更改很少

创建一个安装了gsutil和python的容器,例如
gcr.io/google.com/cloudsdktool/cloudsdk
作为基本映像

注意在部署Cloud Run时使用的服务帐户,授予访问您的bucket的正确权限

如果您需要更多指导,请告诉我,您可以使用。在代码中要执行的更改很少

创建一个安装了gsutil和python的容器,例如
gcr.io/google.com/cloudsdktool/cloudsdk
作为基本映像

注意在部署Cloud Run时使用的服务帐户,授予访问您的bucket的正确权限


如果您需要更多指导,请告诉我。首先,您应该检查
gsuitl
是否有效(不运行Python),然后您可以尝试使用
crontab
(而不是Python)每X分钟运行一次-如果您使用Linux。我使用os.popen和os.system运行它,而这在我的本地终端上运行良好,它不会在云功能中触发它。我基本上看到一个空行,然后它说函数完全执行了。似乎更像是一个gcf问题,更新了答案。首先你应该检查
gsuitl
是否有效(不运行Python),然后你可以尝试使用
crontab
(而不是Python)每X分钟运行一次-如果你使用Linux。我使用os.popen和os.system运行它,而这在我的本地终端上运行良好,它不会在云功能中触发它。我基本上看到一个空行,然后它说函数完全执行了。似乎更多的是一个gcf问题,更新的答案。