Bri*_*ian -1 google-app-engine google-cloud-shell
为看似显而易见的问题道歉,但我认为答案可能会对其他人有所帮助。我一辈子都找不到Google App Engine VM(Cloud Shell)内文件路径上的文档,从中可以找到要从中提供服务的静态文件。我需要从私有github存储库中获取最新的上游更改。
请注意,我在VM的其他位置导航,甚至重新启动会话也没有使我进入VM内的默认项目根路径,正如我期望的那样。
这里有几个问题要解决:
您正在使用的环境是在GCP内Google拥有的项目中的VM中运行的容器。
您可以通过检查元数据服务器(仅适用于GCP VM)来验证这一点:
curl -H 'Metadata-Flavor:Google' "http://metadata.google.internal/computeMetadata/v1/?recursive=true&alt=text"
Run Code Online (Sandbox Code Playgroud)
在提供的元数据中,您将看到如何创建和配置此容器。
Cloud Shell与用户绑定在一起,因此,无论项目如何,如果使用相同的凭据访问它,您将始终访问相同的环境。但是,如果您使用其他用户进行访问,则会获得不同的环境。
GAE是一个完全托管的环境,您将无法访问它。这样,您将无法找到正在运行的App Engine项目的根目录。
但是,通过GAE部署代码的方式,它在编译之前使用了一个暂存区来收集代码。您可以通过App Engine Admin API查找登台存储桶。通常是staging.<PROJECT_ID>.appspot.com,尽管您可以更改此配置。您可以从那里获取文件。
但是,flex中的部署会获取您的文件,并使用它们构建一个Docker容器,然后将该容器部署到VM中。
根据docs,您可以通过运行以下命令直接连接到您的容器:
gcloud app instances ssh [INSTANCE-NAME] --service [SERVICE] --version [VERSION]
docker exec -it gaeapp /bin/bash
Run Code Online (Sandbox Code Playgroud)
根据您在问题评论中所说的,您的问题可能来自无数地方。从更改要连接的Shell到重置Shell环境(删除所有文件),到一千种可能的问题。
考虑它的最佳方法是将Cloud Shell视为运行命令的临时环境,而不是虚拟机。
知道了,你可以安装一个持久的文件系统(GCS通过GCSFuse,云文件存储,...),以保存工作,或者干脆使用GIT中有你的工作总是同步上回购。
GAE Flex有一些不错的CI集成,因此这是走Git路线的优点。
| 归档时间: |
|
| 查看次数: |
1183 次 |
| 最近记录: |