Google App Engine Flexible 可以访问由包动态创建的文件夹吗?

Posted

技术标签:

【中文标题】Google App Engine Flexible 可以访问由包动态创建的文件夹吗?【英文标题】:Google App Engine Flexible get access to a folder dynamically created by a package? 【发布时间】:2018-04-09 12:44:11 【问题描述】:

我在我的NodeJs 应用程序上执行Profiling,我正在使用Google App Engine Flexible,为此,我正在使用npm 0x,但问题是这个包正在我的NodeJs 根目录中创建flamegraph目录文件夹,现在我怎么retrieve this folder(我的意思是get access到这个文件夹)。我的 App Engine Flexible 实例有 SSH,但有两个文件夹 vm-runtime-appvmagent,但我的 NodeJs 源代码根目录不存在。

【问题讨论】:

【参考方案1】:

这是因为 GAE 实例将应用程序启动到 Docker container。 SSH 到您的实例后,您需要在运行您的应用的容器中生成一个 shell

以下是在您通过 SSH 连接到您的实例之后的步骤:

sudo docker ps
docker exec -it [CONTAINER-NAME] /bin/bash

第一个命令将列出正在运行的 Docker 容器,其中包括您的节点运行时容器(可能命名为 gaeapp);第二个命令将在容器内生成一个 bash shell,您可以在其中 lscdpwd 左右

一旦知道要下载哪个目录或文件,就可以退出容器外壳并将文件从容器复制到 GAE 实例:

exit
docker cp [CONTAINER-NAME]:/app/package.json ./

从那里您可以使用 gcloud shell 在本地下载此文件。您也可以在 Node 中生成它后,将其简单地复制到您的 api 中暴露的 http 端点(即/debug/flamegraph.svg),只是说'

【讨论】:

以上是关于Google App Engine Flexible 可以访问由包动态创建的文件夹吗?的主要内容,如果未能解决你的问题,请参考以下文章

连接 Google App Engine 和 Google Compute Engine

Google App Engine Flexible 和 Google Container Engine 之间的区别?

如何在 Google Cloud App Engine 上使用 PubSub 创建订阅者,该订阅者通过 Publisher 从 Google Cloud App Engine Flex 收听消息?

将 Meteor 部署到 Google App Engine 2017

Google BigQuery 的 Google App Engine 授权

Google App Engine 通过内部网络与 Compute Engine 通信