Google app engine Google应用程序引擎项目根位置

Google app engine Google应用程序引擎项目根位置,google-app-engine,google-cloud-shell,Google App Engine,Google Cloud Shell,对于这个看似显而易见的问题,我深表歉意,但我认为这个答案可能会对其他人有所帮助。我一辈子都找不到Google App Engine VM(Cloud Shell)中文件路径上的文档,在那里我可以找到提供服务的静态文件。我需要从私人github回购中获取最新的上游变更 请注意,我在VM中的其他位置进行了导航,甚至重新启动会话也没有像我预期的那样将我置于VM中的默认项目根路径中。这里有几个问题需要解决: 云Shell是一个虚拟Shell 您工作的环境是一个容器,运行在GCP内Google所有项目的

对于这个看似显而易见的问题,我深表歉意,但我认为这个答案可能会对其他人有所帮助。我一辈子都找不到Google App Engine VM(Cloud Shell)中文件路径上的文档,在那里我可以找到提供服务的静态文件。我需要从私人github回购中获取最新的上游变更


请注意,我在VM中的其他位置进行了导航,甚至重新启动会话也没有像我预期的那样将我置于VM中的默认项目根路径中。

这里有几个问题需要解决:

云Shell是一个虚拟Shell

您工作的环境是一个容器,运行在GCP内Google所有项目的VM中

您可以通过检查元数据服务器(仅适用于GCP VM)来验证这一点:

在提供的元数据中,您将看到如何创建和配置此容器

云Shell与用户绑定,因此,如果您使用相同的凭据访问相同的环境,则无论项目如何,您都将始终访问相同的环境。但是,如果您使用不同的用户进行访问,您将获得不同的环境

您无法访问GAE标准实例 GAE是一个完全受管理的环境,您将无法访问它。这样,您将无法找到正在运行的应用程序引擎项目的根

然而,通过GAE部署代码的方式,它在编译之前使用一个暂存桶来收集代码。您可以通过找到您的暂存桶。这通常是
staging..appspot.com
,不过您可以更改此配置。你可以从那里得到你的文件

您可以访问GAE flex应用程序 但是,flex中的部署会获取您的文件,用它们构建Docker容器,然后在VM中部署此容器

根据,您可以通过运行以下命令直接连接到容器:

gcloud app instances ssh [INSTANCE-NAME] --service [SERVICE] --version [VERSION] 
docker exec -it gaeapp /bin/bash
关于你的问题 根据你在问题评论中所说的,你的问题可能来自无数个地方。从更改要连接到的shell,到重置shell环境(删除所有文件),再到上千个不同的可能问题

考虑它的最佳方式是将云Shell视为运行命令的临时环境,而不是虚拟机

知道了这一点,您可以挂载一个持久文件系统(,…)来持久化您的工作,或者简单地使用Git使您的工作始终同步到一个服务器上


GAE Flex有一些很好的CI集成,因此这是Git路线的一个优点。

这里有几个问题需要解决:

云Shell是一个虚拟Shell

您工作的环境是一个容器,运行在GCP内Google所有项目的VM中

您可以通过检查元数据服务器(仅适用于GCP VM)来验证这一点:

在提供的元数据中,您将看到如何创建和配置此容器

云Shell与用户绑定,因此,如果您使用相同的凭据访问相同的环境,则无论项目如何,您都将始终访问相同的环境。但是,如果您使用不同的用户进行访问,您将获得不同的环境

您无法访问GAE标准实例 GAE是一个完全受管理的环境,您将无法访问它。这样,您将无法找到正在运行的应用程序引擎项目的根

然而,通过GAE部署代码的方式,它在编译之前使用一个暂存桶来收集代码。您可以通过找到您的暂存桶。这通常是
staging..appspot.com
,不过您可以更改此配置。你可以从那里得到你的文件

您可以访问GAE flex应用程序 但是,flex中的部署会获取您的文件,用它们构建Docker容器,然后在VM中部署此容器

根据,您可以通过运行以下命令直接连接到容器:

gcloud app instances ssh [INSTANCE-NAME] --service [SERVICE] --version [VERSION] 
docker exec -it gaeapp /bin/bash
关于你的问题 根据你在问题评论中所说的,你的问题可能来自无数个地方。从更改要连接到的shell,到重置shell环境(删除所有文件),再到上千个不同的可能问题

考虑它的最佳方式是将云Shell视为运行命令的临时环境,而不是虚拟机

知道了这一点,您可以挂载一个持久文件系统(,…)来持久化您的工作,或者简单地使用Git使您的工作始终同步到一个服务器上


GAE Flex有一些很好的CI集成,因此这是Git路线的一个优点。

AppEngine和Cloud Shell是不同的东西。CloudShell是一个交互式Shell,运行在另一台机器上,完全由Google处理。您可以从那里将代码部署到appengine,就像您可以从自己的机器上那样,但关系到此结束。除此之外,你的问题措辞怪异,很难理解你在问什么。因此,在过去,我通过Cloud Shell从github远程拉入VM。简单地说,我在VM中找不到我从中提取git的目录。我明白它们是不同的,很抱歉我对它们的了解很少,但我现在唯一缺少的是目录位置,我已经控制了剩下的过程。应用程序引擎和云外壳是不同的东西。CloudShell是一个交互式Shell,运行在另一台机器上,完全由Google处理。您可以从那里将代码部署到appengine,就像您可以从自己的机器上那样,但关系到此结束。除此之外,你的问题措辞怪异,很难理解你在问什么。因此,在过去,我通过Cloud Shell从github远程拉入VM。简单地说,我在VM中找不到我从中提取git的目录。我知道它们是不同的,很抱歉我对它们的了解很少,我承认,但我现在唯一缺少的是目录位置,剩下的过程我都不知道