gcloud:如何通过cli下载应用程序

gcloud: how to download the app via cli

我使用 gcloud preview app deploy 部署了一个应用程序。

有没有办法下载到其他本地机器上? 我怎样才能得到这些文件?我通过 ssh 尝试过但没有成功(无法访问 docker 目录)

更新: 我发现了这个:

gcloud preview app modules download default --version 1 --output-dir=my_dir

但它没有加载文件

日志

Downloading module [default] to [my_dir/default]
Fetching file list from server...
|- Downloading [0] files...                                 -|

目前,执行此操作的最佳方法是从 Docker 中提取文件。

将实例置于自我管理模式,以便您可以通过 ssh 进入它:

$ gcloud preview app modules set-managed-by default --version 1 --self

查找实例名称:

$ gcloud compute instances list | grep gae-default-1

将其从 Docker 容器中复制出来,更改权限,然后将其复制回本地计算机:

$ gcloud compute ssh --zone=us-central1-f gae-default-1-1234 'sudo docker cp gaeapp:/app /tmp'
$ gcloud compute ssh --zone=us-central1-f gae-default-1-1234 "chown -R $USER /tmp/app"
$ gcloud compute copy-files --zone=us-central1-f gae-default-1-1234:/tmp/app /tmp/
$ ls /tmp/app
Dockerfile
[...]

我在两年后来到 Google App Engine,我看到他们做了很多改进并添加了大量功能。但遗憾的是,他们的文档有时还有很多不足之处。

我曾经使用以下命令通过 appcfg.py 下载上传版本的代码。

appcfg.py download_app -A <app_id> -V <version> <output-dir>

当然,现在他们已经完成了 gcloud shell 中的所有内容,其中 appcfg.py 无法访问。

但是,以下方法帮助我下载了已部署的代码:

  1. 转到控制台并进入 Google App Engine。
  2. Select 您要使用的项目。

  3. 项目的仪表板打开后,单击右上角的 打开内置控制台 window.

  4. 应该在底部加载云 shell,现在如果您检查 appcfg.py 是否可供您在此 VM 中使用。

  5. 因此,使用appcfg.py download_app -A <app_id> -V <version> <output-dir>下载代码。

  6. 现在一旦您在所需文件夹中有了代码,为了将它下载到您的本地计算机上 - 您可以打开 docker 代码编辑器

  7. 现在我假设如果我右键单击并导出所需的 可以使用的文件夹,

    但它给了我以下错误信息。

    {"Error":"'concurrency' must be a number but it is [object Undefined]","Message":"'concurrency' must be a number but it is [object Undefined]"}
    
  8. 所以,我想如果文件夹 是一个档案。回到云端 shell 并使用任何东西 你喜欢的实用程序制作文件夹的存档

    zip -r mycode.zip mycode
    
  9. 进入docker代码编辑器,导出并下载。

现在。当然,可能还有更多方法(希望如此),但在 2 年后回到 Google App Engine 后,这对我来说很有意义。

恕我直言,今天(2018 年 8 月)的最佳选择是:

在主菜单下的“产品”下,转到 Tools -> Cloud Build -> Build history

在那里,单击所需构建的 ID。

然后,在打开的window(Build details)中,点击source link,开始下载你的压缩代码。

就这么简单。

HTH.

自 2021 年 2 月起,您可以使用 pip 安装 appengine-sdk

pip install appengine-sdk

安装后,appcfg 可用于下载应用程序代码。

python -m appcfg download_app -A app_id [ -V version ] out-dir