所以从我看到的几个问题看来,这是其他用户之间的问题。最近我们的一位头脑开发者离开了,我继承了他的很多项目。其中一个是似乎的网站存在于谷歌云平台的应用引擎上。从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,显然网站运行正常以及如何获取源代码。这是一个参考屏幕截图
我的终端(本地)的截图。显然我省略了-A和-V标志,但它们被正确设置,如果我故意使它们不正确,我的确会得到一条错误信息。
修改
大家都知道,我也确保我的用户拥有正确的权限。 Owner
,App Engine Owner
......以及其他一些人。我认为这不是问题所在。
答案 0 :(得分:2)
部署App Engine Flexible应用程序时,源代码将在名为staging.<project-id>.appspot.com
的存储桶中上载到项目的云存储中。您可以在此存储桶中导航,并将特定版本的源代码下载为.tar文件。
或者,您可以通过转到开发者控制台&gt;找到源代码的确切云存储URL。容器注册表&gt;构建历史记录并为您的版本选择构建。您将在“构建信息”下找到指向源代码的链接。
但有一点需要注意的是,staging ... bucket默认创建了一个Lifecycle规则,可以自动删除超过15天的文件。如果您希望所有版本都删除此规则,则可以删除此规则。源代码无限期保留。
在您的情况下,我认为可能没有帮助,因为文件可能已被删除但是值得知道您可以从那里获取源代码(源代码默认情况下不会被推送到Source Repository ,您的开发人员必须手动配置它。
答案 1 :(得分:1)
在developer console中,您可以选择相应的项目并检查:
此信息是appcfg.py download_app
期望的信息。另见:
appcfg.py
标志--help
选项
你也可以实时访问已部署的源代码(如果其他一切都失败了,它仍然是获取代码的最后手段,但很繁琐),请参阅我对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 存储库以避免下次出现这种麻烦。
希望这对您有帮助。