问题标签 [google-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.

0 投票
0 回答
279 浏览

google-app-engine - 登录托管 VM 的工作原理是什么?

我正在阅读Google 的关于登录托管 VM 的文档,它们的细节相当薄弱,阅读后我的问题多于答案:

  • 它说的文件/var/log/app_engine/custom_logs会自动拾取——这条路径是预先存在的还是你也必须这样mkdir -p做?
  • 我必须自己处理日志轮换/截断吗?
  • 文件可以有多大?
  • 如果您编写的文件以 结尾.log.json并且其中的某些部分已损坏,那会破坏整个文件还是 Google 会拾取可以读取的位?
  • 与使用 API 相比,以这种方式记录事物是否有性能优势/成本?

更新:我设法让日志显示在日志查看器中,但只有在使用.log后缀记录文件时,每当我尝试.log.json它们都没有被拾取时,我在任何地方都看不到任何错误。JSON 输出看起来不错,并且符合每行一个对象的要求。有谁知道如何调试这个?

0 投票
5 回答
1559 浏览

google-app-engine - 如何永久删除 Google 管理的虚拟机

我无法永久删除我创建的由 Google App Engine 管理的虚拟机。我已经从开发人员的控制台和使用 gcloud 命令多次删除了它们。在每种情况下,命令都会成功完成并删除虚拟机,但随后谷歌几乎立即创建了一个全新的虚拟机来取代它。

有谁知道如何永久删除托管虚拟机?谢谢。

0 投票
0 回答
155 浏览

docker - Dockerfile 在 Google 管理的虚拟机上不起作用

我正在谷歌管理的虚拟机上构建一个网络服务器,它使用 dockerfiles 来加载设置。在我的例子中,就是设置 opencv-python。

我已经使用“gcloud preview app run ./app.yaml”在本地服务器上成功测试了它,一切正常。

但是当我将它部署到谷歌应用引擎和 SSH 到 VM 实例时,它似乎没有运行 dockerfiles 中列出的命令。

问题 1:当实例正在构建 docker 映像时,有没有办法可以看到输出(日志记录)。日志记录在本地服务器上如下所示

问题2:我的dockfiles中的任何错误

0 投票
0 回答
42 浏览

google-managed-vm - 已部署的托管 VM 版本的大小为 0 字节

昨天,我更新了我的 gcloud 组件(通过 gcloud 组件更新),今天我部署了一个新的托管 VM 版本,根据控制台上的版本页面,它占用了 0 字节。有谁知道这是否是最新的 gcloud sdk 更新引入的已知问题?

0 投票
1 回答
168 浏览

google-app-engine - 如何终止 Google App Engine 部署

我有一个 Google 计算引擎实例,我在上面尝试Google Cloud + Node.js 教程。我不小心输入了以下命令:

偶然因为我想直接从我的计算引擎实例(我现在正在做的)运行 node.js 部署,而不是启动 GAE 部署。所以问题是我看到 2 个 GAE VM 实例已经启动来管理这个应用程序。对于如何终止它们,我束手无策——简单地从开发控制台终止实例只会启动新实例。

知道如何终止 GAE 部署吗?(我仍在为我的计算引擎应用程序使用相同的项目)

谢谢!

0 投票
0 回答
197 浏览

java - 托管虚拟机问题?AppEngine Managed VM instance 上关于 VmApiProxyDelegate(使用 Datastore API、TaskQueue API)的常见错误日志

自 2015 年 3 月以来,我一直在使用 Google AppEngine Managed VM/Java。一切正常。但在 2015 年 10 月 9 月之后,我注意到我经常在托管 VM 实例日志中看到“com.google.apphosting.vmruntime.VmApiProxyDelegate”的错误日志。

我注意到了 2 组错误日志。

第一个与托管 VM 实例上的数据存储操作有关。它发生在

  • datastore_v3.Get()。
  • datastore_v3.RunQuery()
  • datastore_v3.Put()
  • 内存缓存.Get()。

我在日志中看到的堆栈跟踪示例如下...(以下示例用于 datastore_v3.Put())

com.google.apphosting.vmruntime.VmApiProxyDelegate runSyncCall:datastore_v3.Put 的 HTTP ApiProxy I/O 错误:读取超时

com.google.apphosting.api.ApiProxy$RPCFailedException:到应用程序服务器的远程 RPC 调用 datastore_v3.Get() 失败。在 com.google.apphosting.vmruntime.VmApiProxyDelegate.runSyncCall(VmApiProxyDelegate.java:182) 在 com.google.apphosting.vmruntime.VmApiProxyDelegate.makeApiCall(VmApiProxyDelegate.java:141) 在 com.google.apphosting.vmruntime.VmApiProxyDelegate.access $000(VmApiProxyDelegate.java:47) 在 com.google.apphosting.vmruntime.VmApiProxyDelegate$MakeSyncCall.call(VmApiProxyDelegate.java:375) 在 com.google.apphosting.vmruntime.VmApiProxyDelegate$MakeSyncCall.call(VmApiProxyDelegate.java:351)在 java.util.concurrent.FutureTask.run(FutureTask.java:262) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent。

所以,当这个错误发生时,在应用程序级别(我的代码),我得到了 RPCFailedException 但现在,我没有用重试机制处理它(我只使用 App Engine Datastore API 的 ConcurrentModificationException 重试机制)

第二组错误日志是关于托管 VM 上的 TaskQueue API。

我得到的错误信息是......

com.google.apphosting.vmruntime.VmApiProxyDelegate runSyncCall:错误正文:RPC 错误:/StubbyService.Send to(未知):APP_ERROR(2)

跟踪时,详细的堆栈跟踪是...

com.wat_suttiwat.batchengine.job.PushNotificationTaskExecutor executeTask:调用 taskqueue.QueryAndOwnTasks() 到应用服务器的远程 RPC 失败。com.google.apphosting.api.ApiProxy$RPCFailedException:调用 taskqueue.QueryAndOwnTasks() 到应用服务器的远程 RPC 失败。在 com.google.apphosting.vmruntime.VmApiProxyDelegate.runSyncCall(VmApiProxyDelegate.java:161) 在 com.google.apphosting.vmruntime.VmApiProxyDelegate.makeApiCall(VmApiProxyDelegate.java:141) 在 com.google.apphosting.vmruntime.VmApiProxyDelegate.access $000(VmApiProxyDelegate.java:47) 在 com.google.apphosting.vmruntime.VmApiProxyDelegate$MakeSyncCall.call(VmApiProxyDelegate.java:375) 在 com.google.apphosting.vmruntime.VmApiProxyDelegate$MakeSyncCall.call(VmApiProxyDelegate.java:351)在 java.util。

在应用程序级别引发的“RPCFailedException”异常(如第一种情况)。我注意到 Google AppEngine 前端实例(不是托管 vm 实例),它照常工作,这些都没有错误。

所以我的问题是

  1. 我应该为 RPCFailedException 添加重试机制吗?添加重试有用吗?我没有从 Google AppEngine 文档中看到任何关于此的文档。

  2. 有没有人和我有同样的问题?如果是,请帮助在此问题跟踪器 (#12393) 上对问题进行投票: https ://code.google.com/p/googleappengine/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type %20Component%20Status%20Stars%20Summary%20Language%20Priority%20Owner%20Log&groupby=&sort=&id=12393

  3. 如果您有任何解决方法,请分享。

非常感谢

0 投票
1 回答
118 浏览

google-app-engine - 谷歌计算引擎不断产生实例,然后部署说没有可用的 CPU

我只是通过免费试用帐户浏览 node.js 教程,而我被困在添加数据库的第二个教程上。我添加了 mongodb 部署,显示为 VM 实例,很好。我的第一次部署成功了,但现在我正在尝试编辑东西,我的部署一直失败。

我得到的错误是我已经超出了我的 CPU 配额。查看 Compute Engine 下的 VM 实例列表,我看到它不断产生实例,即使该应用程序没有被使用。猜猜它默认会启动 8 个实例?

但是我猜构建系统需要自己的VM,但是CPU容量已经用完了,所以没有可用的后续构建?!我觉得我错过了什么...

另外,我看到我可以自己显式启动 VM,那么从我创建它们的过程是什么?我可以把它关掉吗?或者设置它产生的实例数量上限?

我可以告诉我的项目只使用 4

另外,部署需要很长时间,这正常吗?按照教程,到目前为止,我只看到了这个命令来部署:

是否有另一个命令可以进行增量部署或其他什么?

0 投票
1 回答
366 浏览

google-app-engine - Google Managed VM 错误 - 自定义入口点

我正在使用 PHP、HHVM、nginx、Centos 运行自定义托管 VM。

我在本地运行它时遇到问题并继续获取

ValueError:必须为自定义运行时设置 --custom_entrypoint 标志

问题。如果我使用 'dev_appserver.py app.yaml' 或 'gcloud preview app run app.yaml' gcloud -v 会产生以下结果:

$: gcloud -v

谷歌云 SDK 0.9.82

我还尝试按照以下方式修复 SDK 版本: Running node.js on google cloud, but error running with docker

这导致:

请检查环境变量 DOCKER_HOST、DOCKER_CERT_PATH 和 DOCKER_TLS_VERIFY 是否设置正确。如果您使用的是 boot2docker,您可以通过执行如下所示的命令来设置它们: boot2docker shellinit

我没有使用 boot2docker 并且 Docker 正在使用 'docker -d -H tcp://localhost:2376' 和

码头工人信息:

$ 码头工人信息

容器:3

图片:137

存储驱动程序:aufs

根目录:/var/lib/docker/aufs

支持文件系统:extfs

目录:143

执行驱动程序:native-0.2

内核版本:3.19.0-31-generic

操作系统:Ubuntu 15.04

中央处理器:4

总内存:11.43 GiB

环境变量:

$ 回声 $DOCKER_HOST && 回声 $DOCKER_CERT_PATH && $DOCKER_TLS_VERIFY

tcp://localhost:2376

/home/mgane/ca

1

或者 如何修复“必须为自定义运行时设置 --custom_entrypoint 标志”?

这会导致相同的问题。在 python 脚本中注释掉行只会造成更多的混乱甚至更多的错误。

运行 nginx / hhvm 时,我应该实际指定什么作为自定义端点?使用 docker 运行时,图像工作正常。文档为自定义入口点编写如下:

--custom-entrypoint CUSTOM_ENTRYPOINT

为自定义运行时模块指定入口点。当存在此类模块时,这是必需的。在字符串中包含“{port}”(不带引号)以将端口号作为参数传递。例如:--custom_entrypoint="gunicorn -b localhost:{port} mymodule:application"

我试过类似的东西

$ gcloud preview app run app.yaml --custom-entrypoint="php -v"

然后运行图像,但我得到的只是 503 错误。

有谁知道自定义 nginx 的入口点命令应该是什么?谷歌在这里有一个 hello-world docker:https ://github.com/GoogleCloudPlatform/appengine-nginx-hello

谢谢!

0 投票
1 回答
2484 浏览

google-app-engine - 尝试创建 Google 托管虚拟机时出现超时错误

我正在尝试使用谷歌自定义运行时为我的节点 4 应用程序创建一个托管虚拟机。

我创建了以下 Dockerfile:

连同这个 app.yaml:

我使用 gcloud preview 命令部署应用程序:

似乎 docker 正在正确构建,但在过程结束时我收到此消息:

0 投票
1 回答
768 浏览

node.js - 无法在 Google App Engine 上使用 nodejs 应用更新 VM

当我尝试从 gcloud CLI 部署时,出现以下错误。

我的 app.yaml 是:

我已成功登录并拥有正确的项目 ID。我看到在 Cloud Console for App Engine 中创建的新版本,但错误似乎是在那之后。

在 stdout 日志中,我看到两个实例都与我在应用程序开始侦听端口后放入的最后一个 console.log 语句一起上升,但在 shutdown.log 中我看到“应用程序不健康”,在 syslog 中我看到“警告:从来没有从应用程序得到健康的响应,但无论如何都会发送 /_ah/start 查询。”