下载App Engine源代码

时间:2018-03-08 20:26:54

标签: google-app-engine

所以从我看到的几个问题看来,这是其他用户之间的问题。最近我们的一位头脑开发者离开了,我继承了他的很多项目。其中一个是似乎的网站存在于谷歌云平台的应用引擎上。从App Engine documentation下载源代码,您可以使用appcfg.py download_app命令。我做了哪些,但是我从这个电话中得到的唯一结果是:

Fetching file list...
Fetching files...

然后它就结束了。没有任何错误消息或任何类型的消息,当然,它没有将源代码下载到我指定的输出目录中。

抓住我的头,看着各种SO帖子,有人提到了直接进入谷歌云vm并执行相同命令的事情,并且我惊讶地发现我在本地终端中所做的相同的行为。

这让我意识到它必须是其他的东西。我查看了GCP上App Engine仪表板中的versions选项卡。我看到我的实例正在运行,它正确地说Serving,如果我点击链接,它会将我带到加载正常的网站。但是,在Size下,它说0 B让我想到也许这就是为什么download_app没有下载任何东西,因为版本是0 B?

我想弄清楚的是为什么它说版本为0 B,显然网站运行正常以及如何获取源代码。这是一个参考屏幕截图

what gives

我的终端(本地)的截图。显然我省略了-A和-V标志,但它们被正确设置,如果我故意使它们不正确,我的确会得到一条错误信息。

enter image description here

修改

大家都知道,我也确保我的用户拥有正确的权限。 OwnerApp Engine Owner ......以及其他一些人。我认为这不是问题所在。

3 个答案:

答案 0 :(得分:2)

部署App Engine Flexible应用程序时,源代码将在名为staging.<project-id>.appspot.com的存储桶中上载到项目的云存储中。您可以在此存储桶中导航,并将特定版本的源代码下载为.tar文件。

或者,您可以通过转到开发者控制台&gt;找到源代码的确切云存储URL。容器注册表&gt;构建历史记录并为您的版本选择构建。您将在“构建信息”下找到指向源代码的链接。

但有一点需要注意的是,staging ... bucket默认创建了一个Lifecycle规则,可以自动删除超过15天的文件。如果您希望所有版本都删除此规则,则可以删除此规则。源代码无限期保留。

在您的情况下,我认为可能没有帮助,因为文件可能已被删除但是值得知道您可以从那里获取源代码(源代码默认情况下不会被推送到Source Repository ,您的开发人员必须手动配置它。

答案 1 :(得分:1)

developer console中,您可以选择相应的项目并检查:

  • 在“服务”页面上 - 哪些服务,AKA模块 - 就像以前在各个地方调用(现在仍在),你已经部署了
  • 在“版本”页面上 - 部署了每个服务的版本

此信息是appcfg.py download_app期望的信息。另见:

你也可以实时访问已部署的源代码(如果其他一切都失败了,它仍然是获取代码的最后手段,但很繁琐),请参阅我对Google Cloud DataStore automatic indexing的回答

<强>更新

我刚刚在你的截图中注意到它是一个灵活的环境应用程序。 appcfg.py文档位于标准环境部分,我怀疑它不适用于灵活环境,部署的实际上是部署操作期间构建的docker镜像。来自Deploying your application

  

使用gcloud app deploy将您的应用部署到App Engine   命令。此命令通过使用自动构建容器图像   Container Builder服务,然后将该图像部署到   App Engine灵活的环境。容器将包括任何本地   您对运行时映像所做的修改。

可能可以访问运行应用程序的实际GCE实例上的代码,方法是连接到正在运行的实例并在应用容器中启动shell,请参阅Connecting to the instance

答案 2 :(得分:0)

发布此信息是因为网络上列出的所有方法都没有带我去看代码(到 2021 年 6 月)

注意:appcfg.py 是 deprecated by Google

您可以尝试通过以下方式访问源代码;

<块引用>

Google Cloud Platform > Debugger > 选择版本 从顶部组合应用。

这将在左侧窗格中列出该版本的文件。无法自动下载代码,但您可以复制粘贴代码。

建议:将您的代码推送到 Git 存储库以避免下次出现这种麻烦。

希望这对您有帮助。