问题标签 [managed-vm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 无法找到/修改使用标准运行时 (python27) 的 Google App Engine 托管 VM 的 Dockerfile
我想修改使用标准运行时 (python27) 的 Google App Engine 托管 VM 的 Dockerfile。
我想这样做以添加一个需要调用以实现 HTTP 请求的 C++ 库。这个库几乎是我需要添加到沙盒 python27 运行时的唯一补充。
文档清楚地表明这是可能的:
每个标准运行时都使用 SDK 提供的默认 Dockerfile。您可以通过向此文件添加新的 docker 命令来扩展和增强标准运行时。
在其他地方,他们说标准运行时的 Dockerfile 将在项目目录中生成:
当您使用 gcloud 运行或部署基于标准运行时(在本例中为 Python27)的托管 VM 应用程序时,SDK 将使用标准运行时作为基础映像创建一个最小的 Dockerfile。你会在你的项目目录中找到这个 Dockerfile...
这是我应该根据同一页面修改的:
本教程后面的步骤将向您展示如何通过向 Dockerfile 添加指令来扩展运行时环境的功能。
问题是当我在开发服务器上运行我的应用程序时,我无法在任何地方找到 Dockerfile,所以我无法对其进行任何更改。
有没有人设法修改 Google App Engine 的标准运行时 Dockerfile?任何帮助,将不胜感激。
java - 从 Google 托管 VM(自定义/Java)连接到 Google Cloud Datastore?
是否可以从 Google App Engine Custom Managed VM for Java 连接到 Google Cloud Datastore?我相信标准托管虚拟机有可能,但自定义虚拟机有可能吗?
java - 可以使用 Docker 在本地运行 Google 标准托管 VM 以进行开发吗?
是否可以出于开发目的在本地运行适用于 Java 的 Google 标准托管 VM?我在问原因 dev_appserver.py、mvn gcloud:run 或 gcloud preview app run 对简单的 hello world 应用程序有好处,但任何比这更大的东西都不起作用......(单线程、超时等......)。
python - App Engine 托管虚拟机上的 Django
我有一个最小的 Django 项目,我正在尝试将它部署到 Google App Engine Managed VMs 上。我在理解到底发生了什么以及什么在服务什么方面遇到了一些麻烦。我有一个 app.yaml 文件,如下所示:
还有一个看起来像这样的 dockerfile:
我的 requirements.txt 看起来像这样:
该站点部署正常,但我的静态文件没有显示。因此,在沙盒应用引擎项目中,app.yaml 中的处理程序负责为我的静态内容提供服务。我是否必须在 dockerfile 中配置 nginx 服务器或类似服务器来提供静态内容?
为了帮助我理解这一点,如果我没有 gunicorn 为我的应用程序提供服务,App Engine 是否默认不使用处理程序提供服务?即如果我没有会发生什么CMD gunicorn DjangoVM.wsgi
?自定义运行时是否意味着默认情况下应用程序引擎不会为我的应用程序提供服务,而我必须指定特定的 WSGI 服务器?托管 VM 的文档还不是很详尽。抱歉,如果这些问题看起来有点令人困惑,但这也反映了我目前对该主题的困惑。谢谢你的帮助!
python - Google App Engine 柔性环境中的“无法导入 google/appengine/ext/deferred/handler.py”
我使用 App Engine 灵活环境(以前称为托管虚拟机),最近升级到了最新的 gcloud SDK。它包括一些新错误:
我修复了这些错误并能够再次发布,但开始看到如下错误:
google-app-engine - 未记录的托管 VM 任务队列 RPCFailedError
我在 GAE 托管 VM 和任务队列中遇到了一个非常特殊且未记录的问题。我知道托管 VM 服务处于测试阶段,所以这个问题可能不会永远相关,但它现在肯定让我很头疼。
该问题的主要症状是,在某些(我不完全了解)情况下,我看到以下错误/回溯:
我已经通过我的本地 App Engine SDK 来跟踪它,我可以到达跟踪的最后一行,但google/appengine/ext/vmruntime/
我的机器上根本不存在,所以我不知道vmstub.py
. 通过查看本地代码,some_task.add_async('the-queue')
正在启动一个 RPC 并等待它完成,但这个错误不是except apiproxy_errors.ApplicationError, e:
taskqueue.py 的第 1949 行所期望的......
生成错误的代码如下所示:
其他值得注意的事情:
- 此代码本身正在由另一个任务启动的任务处理程序中运行。
- 在实现这种批处理之前,我首先看到了这个错误,并认为问题是因为我从任务处理程序中添加了太多任务。
- 在某些情况下,我可以以 100 的批量大小成功运行此程序,但在其他情况下,它始终以 100 失败(取决于有效负载中的数据),有时以 50 的批量大小成功。
- 任务有效负载本身包括成批的项目,并且被调整为足够小以适合任务。App Engine 宣传最大任务大小为 100KB,因此我现在将有效负载保持在 90,000 字节以下。进一步降低尺寸似乎没有任何帮助。
- 我还尝试实现指数退避以在
kickoff_tasks
出现此错误时重试该方法,但似乎一旦引发错误,我就无法从同一个处理程序中添加任何其他任务(即我无法启动一个“从你离开的地方继续”的任务,我只需要让这个失败并重新启动)
所以,我的问题是,究竟是什么导致了这个错误?我怎样才能避免它,或者解决这个问题以便我正确处理它?
websocket - Google Cloud 中的负载平衡 websocket 连接
我遇到了一个使用 Google 技术无法完全解决的问题。
我需要通过 SSL 提供 >500 个并行 websocket 连接。理想情况下,客户端连接到 wss://wss.mydomain.com 并由实例提供服务。
选项 1:我目前使用自定义运行时托管 VM 来部署运行启用 SSL 的 websocket 服务器的 Dockerfile。部署托管 VM 实例会产生一个 GCE 实例。我使用 Google Cloud DNS 将 wss.mydomain.com 指向 GCE 实例的这一 IP 地址。
问题:我无法连接到 wss.mydomain.com(甚至连 my-mvm.appspot.com),因为 websocket 连接(通过 SSL)不会被转发到托管 VM 实例。提出了一个问题,但没有看到任何对我有帮助的回复。还有其他人在这里和这里得出这个结论。
因此,如果托管虚拟机不是解决方案,我在 Google Cloud 架构中的哪里可以找到它?
选项 2:由于 managedVM 似乎是 GCE 的糖衣,也许我可以保留已经提供 GCE 实例的当前设置并自己添加负载平衡?
选项 2a:HTTP(S) 负载平衡不允许 websocket 流量,所以一个out。
选项 2b:网络负载平衡可以工作。我需要将实例分配给目标池才能正常工作。是否可以将新创建的托管 VM 实例自动分配到目标池,以便它们加入负载平衡?如果是这样,这将是解决问题的完整方法吗?
选项 3:我想继续使用我的 Dockerfile 进行设置。所以我在看容器引擎。我在这里完全没有经验。
在我涉足另一个雷区之前,哪个选项最有可能解决我的问题?也许还有另一个我没有想到的选择。
google-compute-engine - Google Cloud Debugger 不适用于 Python AppEngine 托管的虚拟机
正如今天在使用 Cloud Debugger 进行生产故障排除中宣布的那样,现在可以使用 Python 了,据说我现在可以使用 Python Debugger。
我在 GCE 映像上运行 AppEngine Managed VMs,所以我按照在 Compute Engine 上设置 Python的指南进行操作。我已经修改了要添加的 Dockerfile pip install google-python-cloud-debugger
(我还尝试将库直接安装到我的 app/lib 中,它包含在我的 sys.path 中):
然后我修改了我的 main.py 以启用调试器:
不幸的是,当我提交代码、运行gcloud preview app gen-repo-info-file
并推送它时,我无法使用调试器。当我转到https://console.developers.google.com/debug时,它会在右侧加载我的 github 存储库,但我在左侧导航区域看到一条错误消息:
调试不可用。您可以调试在 App Engine 或 Compute Engine 上运行的 Java 应用程序
有什么想法可能会出错,或者如何调试调试器?
python - 谷歌管理的虚拟机模块卡在重启循环中
我一直在尝试添加一个使用托管虚拟机而不是默认 GAE 沙箱的新App Engine 模块。目的是提供一个模块,我可以在其中运行新版本的 SciPy 和 NumPy,我的面向用户的模块可以调用它。我已经成功地在本地构建并运行了我的 Docker 映像/容器,但是当我尝试在 Google 服务器上部署到自定义版本时遇到了很多问题。
以下来自托管 VM 模块实例的串行控制台输出,由于出现我无法控制的问题,该实例继续重新启动。
有没有其他人遇到过这些?我在配置/部署过程中是否遗漏了什么?
FWIW:我使用 GAE 已经好几年了,甚至在我在 Google 工作期间也为它做出了贡献。我也有使用模块以及 Docker 的经验。目前,有关托管 VM 的文档和工具似乎还很不成熟,我已经筋疲力尽地试图与之抗争。我需要帮助。
编辑:来自 shutdown.log 的其他信息如下。该docker logs
命令没有在我的任何代码或 Dockerfile 中运行——我认为 Google 最终使用它的方式存在错误。
google-app-engine - 托管 VM 是否可以滚动更新?
我们开始在沙盒环境中使用托管虚拟机,并体验到即使应用程序的多个实例正在运行,该平台并没有以一种rolling
方式推出它们,因此我们在部署时经常达到 503。
我们是否遗漏了健康检查等方面的内容?