Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 在产品中访问Google应用程序引擎Python应用程序代码_Google App Engine_Google App Engine Python - Fatal编程技术网

Google app engine 在产品中访问Google应用程序引擎Python应用程序代码

Google app engine 在产品中访问Google应用程序引擎Python应用程序代码,google-app-engine,google-app-engine-python,Google App Engine,Google App Engine Python,(背景:我不熟悉谷歌应用引擎,熟悉其他云提供商的服务) 我正在寻找与shell访问生产节点类似的访问/视图 使用基于Python/Django的Google应用程序引擎应用程序,我想查看生产中的代码 我可以找到的一个视图是StackDriver“Debug”视图。 但是,显然,Debug视图中显示的代码并不反映更新的生产代码(基于生产站点上显示的内容,例如,主页上的文本不同) Google App Engine是否允许我通过ssh连接到运行应用程序/代码的VM? 如果没有,如何检查生产中运行的代

(背景:我不熟悉谷歌应用引擎,熟悉其他云提供商的服务)

我正在寻找与shell访问生产节点类似的访问/视图

使用基于Python/Django的Google应用程序引擎应用程序,我想查看生产中的代码

我可以找到的一个视图是StackDriver“Debug”视图。 但是,显然,Debug视图中显示的代码并不反映更新的生产代码(基于生产站点上显示的内容,例如,主页上的文本不同)

Google App Engine是否允许我通过ssh连接到运行应用程序/代码的VM? 如果没有,如何检查生产中运行的代码


谢谢。

根据表中的
SSH调试
行,flex环境应用程序支持SSH访问,但标准环境应用程序不支持

发件人:

如果VM实例处于调试模式,则可以通过以下方式连接到其主机: 在控制台中使用SSH或使用
gcloud

要连接到控制台中的实例,请执行以下操作:

  • 访问项目的云平台控制台实例页面:

  • 单击包含要访问的实例的行最右侧的SSH

    这将使实例进入调试模式,并在终端窗口中为实例打开SSH会话

    您还可以从下拉列表中选择不同的选项来启动SSH会话

  • 此时,您处于实例主机中,该主机中运行着多个实例。有关这些的更多信息,请参见下一步

  • 在终端窗口中,列出实例中运行的容器:

    sudo docker ps
    
  • sudo docker ps
    命令的输出按行列出每个容器;找到包含项目ID的行:这是 运行代码的容器。请注意此容器的名称

  • (可选)通过调用以下命令列出应用程序的日志记录信息:

    sudo docker logs [CONTAINER-NAME]
    
  • 在运行代码的容器中启动shell:

    container_exec [CONTAINER-NAME] /bin/bash
    
  • 调试完成后,输入exit退出容器,然后再次退出SSH会话

  • 禁用实例的调试以允许其恢复正常操作


  • 如果您使用的是标准环境,那么答案是否定的,您无法真正检查或直接查看代码。您提到过通过Stackdriver调试器查看它,这是查看它的表示的一种方式


    听起来,如果您有理由查看代码,那么您组织中的某个人应该授予您对源代码管理系统的适当访问级别。我可以想象,如果您的部署实践已经成熟,那么他们可能会将代码分支以映射到您的部署版本,您可以在本地进行详细检查。

    谢谢Dan。顺便说一下,似乎一个灵活的环境由app.yaml中的“env:flex”标识?在我的例子中,我没有在app.yaml中看到任何“env:”设置。我想这排除了ssh选项。我试图确定生产中的代码到底是什么?StackDriver“Debug”下显示的代码似乎不是正确的版本。在我的情况下(显然是标准环境),我如何在生产中看到代码,包括cronjobs的代码?下载应用程序是唯一的选择吗。不幸的是,在我的情况下,这不是一个选择,至少现在是这样。这只适用于上传代码的人或所有者,我两者都不是。根据“IAM”页面,我的角色是“编辑”。在
    app.yaml
    中缺少
    env:
    表示标准环境,因此没有SSH访问。我能想到的访问代码的唯一其他方法是联系有权为您下载代码的人。您的组织应该有一个好的部署过程来解决这个问题-有一个记录良好的部署历史记录,显示准确的时间和代码版本。谢谢Dan。我想到了这一点,并得到了下载代码的角色更改。答案在很大程度上取决于您使用的是标准环境还是灵活环境。你能把这个细节补充到你的问题中吗?谢谢。问题在于在更新回购协议之前将代码更改推送到prod。理想情况下,应该设置代码只能通过scm系统推送。