是否可以从另一个GAE应用程序部署一个GAE应用程序?

时间:2009-09-08 02:02:12

标签: python google-app-engine

为了重新部署GAE应用程序,我目前必须在我用于部署的系统上安装GAE部署工具。虽然此过程相对简单,但部署过程是一个手动过程,无法在防火墙后面运行,并且必须在将用于更新GAE应用程序的每台计算机上安装部署工具。如果我可以从之前部署的另一个GAE应用程序更新GAE应用程序,那么更理想的解决方案就是如此。这将消除将多个系统配置为部署应用程序的需要。

由于GAE部署工具是用Python编写的,GAE App Engine支持Python,是否可以修改appcfg.py以便在GAE中工作?用例是从GitHub或其他一些在线存储库中提取项目,并从另一个GAE应用程序更新一个GAE应用程序。如果这不可能,那么限制约束是什么?

3 个答案:

答案 0 :(得分:5)

有可能吗?是。用于更新应用程序的协议appcfg完全基于HTTP,所以绝对没有理由你不能编写能够部署其他应用程序(或重新部署自身 - 自修改代码)的应用程序!您甚至可以重用appcfg.py的大部分来完成它。

容易吗?可能不是。你很可能需要了解一大堆appcfg的内部结构,以及它用来上传新应用程序的RPC - 这不是一项微不足道的事情。您还需要将您的凭据存储在应用程序中,尽管您可以使用角色帐户,该帐户仅适用于其部署的应用程序,以最大限度地降低风险。

答案 1 :(得分:2)

一个限制约束可能是python sdk用于与GAE服务器通信的协议。如果它只使用HTTP,那么你可能没问题。但如果它是其他任何东西,你可能会因为无法直接从GAE中打开套接字而运气不好。

答案 2 :(得分:0)

尝试在防火墙后更新会有什么问题?

我有一些,但最后我设法解决它们。

关于您的问题,约束条件是您无法将文件写入GAE应用程序,因此即使您可能从VCS中提取,也无法编写这些拉出的文件。

所以你必须首先从GAE外部更新。

无论如何,每台需要更新GAE的机器都应该拥有SDK,以确定它们是否会发生变化。

所以,如果你真的想这样做,你有两种选择:

  1. 托管您自己的“更新程序”站点并在那里安装SDK,然后当您想要将日志更新到您身边(或运行脚本)并进行远程更新时。

  2. 虽然我不太了解Amazon EC2,但我认为你可以从那里做与op 1完全相同的事情。

  3. 最后,我认为必须始终输入要更新的密码。 (你可以拥有App引擎的SDK并修改它,因为它是开源的)