Google cloud platform 有没有办法在GCP上将gsutil作为常规Linux cronjob运行?

Google cloud platform 有没有办法在GCP上将gsutil作为常规Linux cronjob运行?,google-cloud-platform,gsutil,google-cloud-scheduler,Google Cloud Platform,Gsutil,Google Cloud Scheduler,我有一个脚本,它可以处理gcloudutils,比如gsutil和bq,例如: #!/usr/bin/env bash bq 'SELECT * FROM myproject.whatever WHERE date > $x' > res.csv gsutil cp res.csv gs://my_storage/foo.csv 这在我的机器或虚拟机上运行,但我不能保证它会一直运行,所以我想将它添加为GCP cronjob/Lambda类型的东西。从文档中可以看出,云调度器似乎只

我有一个脚本,它可以处理
gcloud
utils,比如
gsutil
bq
,例如:

#!/usr/bin/env bash

bq 'SELECT * FROM myproject.whatever WHERE date > $x' > res.csv
gsutil cp res.csv gs://my_storage/foo.csv
这在我的机器或虚拟机上运行,但我不能保证它会一直运行,所以我想将它添加为GCP cronjob/Lambda类型的东西。从文档中可以看出,云调度器似乎只能执行HTTP请求、发布/订阅或应用程序引擎HTTP,这些都不是我想要的


所以:在GCP中有没有办法自动化一些
gsutil
/
bq
命令,比如cronjob,但如果我不提供一台始终在线的机器

可能会有多个答案,这只是一个

对我来说,我会研究的概念。这里的想法是创建一个Docker映像,当REST请求调用该映像时,该映像将被实例化、运行和清理。你在docker图像中的内容完全由你决定。它可以是一个简单的映像,带有gcloud和gsutil等工具,并安装了一个脚本,可以使用任何所需的参数运行它们。您与Cloud Run的约定仅限于您使用传入的HTTP请求

当没有云运行的请求时,没有任何东西在运行,因此不收取任何费用。您只在逻辑实际执行的持续时间内计费


我建议使用Cloud Run over Cloud函数,因为Cloud Run允许您定义命令运行的环境。。。例如gsutil的可用性。

1)诸如
gsutil
之类的工具对用户环境有要求,包括Python、环境变量、服务帐户等。2)Cron作业不设置用户环境。作业作为特权进程运行3)这意味着您应该重新设计您尝试执行的操作,使其符合Cron作业的范围,否则您必须为
gsutil
模拟用户环境。在选项中查看此答案,以指定要在下面运行命令的用户名:谢谢,这看起来对我有用。然后我将如何激活它?我会使用GCP cronjob发送HTTP GET请求吗?有一种称为Cloud Scheduler的GCP产品,基本上是无服务器的cron。您可以在触发事件时定义调度程序。当触发时,云调度程序会提供许多目标。。。包括HTTP。这意味着我们可以使用云调度器来启动一个云运行实例。