我在Google App Engine(GAE)上托管了一个应用。在传入请求时,我需要向推送队列添加一个任务,该推送队列又触发一个工作人员(向我的应用程序发出另一个请求)以临时克隆git存储库以对其进行分析(git repo可以在工作人员之后被删除)完成)。
我考虑使用Python git库以编程方式克隆git存储库(例如GitPython)但是考虑到文件系统限制(没有写入),我不确定如何实现这一点。是否有某种易失性/内存文件系统(例如ramdisk)可用作临时目录来完成我的工作?
另外,我偶然发现了MemoryFS,但我还没有尝试过,并且不知道这是否适用于GAE。
答案 0 :(得分:1)
根据文档,GAE Managed VMs允许在限制较少的沙箱中运行普通的GAE应用程序代码(python,java和go)。特别是托管VM可以配置为具有真正的本地文件系统:
您可以选择托管环境(沙盒或托管VM) 单独为您的应用程序中的每个模块。这意味着一个 应用程序可以包含使用不同主机的混合模块 环境。例如,您可以使用沙箱环境 面向客户端的前端,并使用在托管VM中运行的模块 用于后端处理。请注意任何特定的每个实例 模块将在相同类型的环境中运行。
下表总结了两个App之间的差异 发动机托管环境:
Feature App Engine sandbox Managed VM ... Writing to local disk No Yes, ephemeral (disk initialized on each VM startup) ... Pricing Based on Instance hours While in Beta, based on Compute Engine Pricing for each VM. Pricing will change in the future.
因此,您应该能够使用单独的应用程序模块执行配置为在虚拟机上运行的与文件系统相关的作业。
答案 1 :(得分:-1)