我应该使用什么服务来处理Cloud Storage存储桶中的文件并上传结果?

时间:2019-02-08 11:41:34

标签: google-cloud-platform google-cloud-storage google-cloud-functions

我有一个处理某些文件的软件。我需要的是:

  • 使用API​​或运行命令在Google云上启动默认映像(我认为docker应该是一个很好的解决方案)
  • 从Google存储空间下载文件
  • 处理它,使用那些下载的文件运行我的软件
  • 将结果上传到Google存储空间
  • 关闭图像,并希望不再收费

我所知道的是如何创建我的图片。但是我找不到任何信息告诉我应该使用哪种Google云服务,或者即使我可以按照自己的想法进行操作也可以。我认为我没有使用正确的关键字来找到所需的内容。

我当时正在看Kubernetes,但是我不知道如何操纵这些实例来执行一次处理。

[编辑]

更好地说明流程,我有一个应用程序可以接收图像并将其发送到Google存储。之后,我需要处理该图像,应用滤镜,地理配准,拆分图像等。因此,我想启动一个docker图像进行处理,然后将结果再次上传到Google Cloud。

2 个答案:

答案 0 :(得分:1)

如果您使用的是runtimes supported by Google Cloud Functions中的任何一种,则它们是执行此类操作的最简单方法(即,从Google Cloud Storage中获取某些内容,对这些文件执行某些操作,然后再次上传)。您选择的事件将触发“云功能”,工作结束后,它将死亡。

关于复杂性的下一个选择是部署Google App Engine application in standard environment。它允许您为此环境部署用any of the supported languages编写的自己的应用程序。虽然您的应用程序中有流量,但是您将有实例在服务,但是当实例不提供服务时,正在运行的实例数可以减少到0,这将降低成本。

另一个选项是Google App Engine in flexible environment。该产品允许您在任何自定义运行时中部署应用程序。此选项始终至少有一个实例在运行,因此它将永远不会关闭。

最后,您可以使用Google Compute Engine“在Google基础架构上创建和运行虚拟机”。除了GAE之外,这不是由Google管理的,这意味着大多数配置取决于您。在这种情况下,您需要以编程方式指示您的VM在完成操作后关闭。

答案 1 :(得分:0)

根据您所做的编辑,即您已经有一个将图像插入Google Cloud Storage的应用程序,您最简单的选择是使用通过对Cloud Storage存储桶中的对象进行添加,更改或删除而触发的Cloud Functions

您可以按照Cloud Functions tutorial for Cloud Storage来了解通用过程,然后实现处理特定任务的自己的代码。还有Imagemagick tutorial for Cloud Functions之类的其他教程,它们也可能与您打算执行的处理类型有关。

云功能可能是您最轻量的方法。您当然可以进行更多的全尺寸应用程序,但这可能是过大,更昂贵且更复杂的。您可以使用Node.js,Python或Go编写处理代码。