如何找到两年前部署的谷歌应用引擎源代码

问题描述

我们有一个谷歌云 AppEngine 服务,该服务是由一位不再在我们公司工作的开发人员编写和部署的(但是,我们仍然拥有他的登录凭据)。该版本基于自定义运行时和灵活的环境,最后一次部署是在 2018 年 4 月 16 日。 我们的问题是该服务间歇性地抛出 502/Nginx 错误,我们似乎无法找到它的源代码。当我们转到该版本的调试选项卡时,我们会看到附加的屏幕。尝试按照屏幕截图错误中的说明重新部署,因为我们的本地目录中没有源文件

有谁知道是否可以找出此代码的部署位置?我们当然已经搜索了我们的 GitLab,但在那里找不到项目。

enter image description here

解决方法

您可以尝试在 GCP 控制台 (https://console.cloud.google.com/appengine/instances) 中转到 App Engine > Instances。从下拉列表中选择正确的服务,然后在实例本身上选择“SSH”。

enter image description here

一个 Cloud Shell 将打开。执行 sudo docker exec -t -i gaeapp /bin/bash 打开应用容器 (Access app files in ssh session into google app engine flexible?)

现在,如果您执行 ls,您应该会看到这些文件。但是,此时我不知道如何轻松下载所有这些。

@Jans 回答访问文件要直接得多,但默认情况下 staging.[yourproject].appspot.com 会删除早于 14 天的文件

,

我发现应用引擎服务的代码被上传到谷歌云存储的文件夹

  1. Open storage browser
  2. 转到文件夹 staging.[yourproject].appspot.com
  3. 检查文件夹 us.gcr.io 这可能因 appengine 的区域而异
  4. 打开文件夹appengine
  5. 此文件夹中的文件是包含应用引擎服务源代码的 TAR 文件。

如果此文件夹被删除,代码将无法恢复。

,

在这里添加另一个选项,不久前我正在研究几种方法并将它们收集在 GitHub repo 中。所以我会把它留在这里以防万一它对你有用,希望如此!