问题标签 [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 投票
1 回答
118 浏览

google-app-engine - Java Google AppEngine 托管虚拟机:可以通过 Logging API 获取哪些日志?

我喜欢我可以使用 Logs API(在此处描述:https ://cloud.google.com/appengine/docs/java/logs/ )以编程方式访问和显示我认为合适的应用程序和请求日志——这很棒。

现在我在 AppEngine 上使用托管虚拟机,您可以在管理控制台日志查看器上看到有大量其他日志 - 包括在我的情况下我发现可以包含在查看器中的自定义日志(在此处描述:https ://cloud.google.com/appengine/docs/managed-vms/custom-runtimes#logging)。

管理控制台日志查看器

我的问题是:有什么方法可以使用 Logs API(或其他已构建的管道?)来访问这些日志?我的托管 VM 模块包含几个组件,它们可以生成我想要查看的日志:

  1. 应用程序日志——我可以得到这些!这里没问题。
  2. 我在 _ah/start 中启动的后台进程创建的自定义日志文件(如屏幕截图中的“my_custom_1.log”)
  3. 我的后台进程中的 STDERR 和 STDOUT
  4. 相关的托管 VM 日志(例如,当实例因健康状况不佳而重新启动时......其他系统事件,如正常重新启动?)

基本上我想要实例级别的“全貌” 。有人尝试以这种方式成功驯服托管虚拟机吗?我不期待推出自己的解决方案。我什至不知道从哪里开始捕获 STDERR 和 STDOUT 的问题。任何帮助表示赞赏。

0 投票
1 回答
762 浏览

jenkins - 由于“请求的身份验证范围不足”,部署失败

我在 project1 上创建了新的 VM 实例(jenkins-server),并在其上安装了 jenkins 服务器。詹金斯的其中一项工作应该构建我的应用程序并将其部署在 project2 上,使用以下命令

由于以下错误,该命令失败:

我在 project2 上创建了名为 jenkins-server 的新存储桶,并使用存储桶参数再次尝试了该命令

Project1 是使用完全权限创建的

Google SDK 版本是最新的:Google Cloud SDK 95.0.0

[编辑][更新]

在 project1 上,我在 jenkins-server 实例上使用了预装 jenkins 的图像,但我仅使用 ubuntu 14.04 LTS 重新创建了实例,并手动安装了其他所有内容(cloud sdk、tomcat server、jenkins、maven ...)

上面的问题消失了,但现在我得到了不同的错误

检查日志文件后,我可以看到以下错误:

这是默认和自定义存储桶的相同错误

感谢你的帮助

0 投票
1 回答
263 浏览

google-app-engine - 可能的?如何在 Google 托管的 VM 环境中设置 VNC

我正在使用 Java,但这不一定是 Java 问题。谷歌的“java-compat”镜像是 Debian (3.16.7-ckt20-1+deb8u3~bpo70+1 (2016-01-19))。

这是我的 Dockerfile:

在管理控制台中,我创建了一个防火墙规则来打开 5900。最后,我使用以下命令在“_ah/start”启动挂钩中调用 vnc 服务器本身:

一切似乎都设置正确,但我无法连接 TightVNC。我对在管理控制台中找到的实例使用公共(临时)IP 地址,后跟 ::5900(由于某种原因,TightVNC 需要两个冒号)。我收到一条消息,服务器拒绝连接。事实上,当我尝试远程登录到端口 5900 时,它被阻止了。

接下来我通过 SSH 连接到容器机器,当我使用 wget xxx.xxx.xxx.xxx:5900 测试容器上的端口时,我得到了一个连接。所以在我看来,容器不接受端口 5900 上的连接。我说对了吗?是否可以打开端口并将我的 VNC 客户端路由到 docker 容器中?任何帮助表示赞赏。

为什么我不能使用 Compute Engine。 只是为了抢占一些关于使用谷歌计算引擎环境而不是托管虚拟机的评论。我在代码中大量使用了数据存储和任务队列。我不认为这些可以在 Compute Engine 上运行(或本机/高效运行)。但我可能会将其作为一个单独的问题提出。

更新:评论中的 Per Paul... 学习了一些 docker 术语:我可以在 Google 环境中的容器上发布一个端口吗?

0 投票
1 回答
2211 浏览

google-cloud-platform - 如何在 Google Cloud Managed VM 中设置自动缩放

我们计划在谷歌云管理的虚拟机上部署我们的应用程序。我尝试使用自动缩放。我已根据此文档更改了以下参数

https://cloud.google.com/appengine/docs/managed-vms/java/configuring-your-app-with-app-yaml

这是我们的 app.yaml 文件设置

但是当我尝试部署时,我们收到以下错误

如何设置最大、最小空闲实例数、延迟以及如何在 app.yaml 中设置版本号

0 投票
1 回答
1153 浏览

gcloud - 为什么 gcloud preview app deploy 不更新我的应用程序?

我可以使用“gcloud preview app deploy”部署一个新应用,但是如果我更改了一些代码并再次部署,我在我的 .appspot.com 上看不到更改

'git push origin master' 也不起作用

我在浏览器中使用 nodejs 和 google cloud shell。

0 投票
2 回答
181 浏览

java - 使用 Java 和 Cloud SQL 的 AppEngine 托管虚拟机

我想要一个 Java Appengine Managed VM 应用程序连接到第二代云 SQL 实例。文档中存在差异 - 我无法确定 Google 是否真的支持它!

https://cloud.google.com/appengine/docs/managed-vms/java/using-cloud-sql 状态:

4:在控制台中,授予您的 App Engine 应用程序访问 Google Cloud SQL 实例的权限。

但我认为没有办法做到这一点。在 Cloud SQL 管理控制台中,在实例的属性下,有:

授权申请:无

似乎没有办法授权应用程序?

然后在此页面https://cloud.google.com/sql/docs/dev-access上声明:

Java App 引擎应用程序

Java 不支持使用 Cloud SQL 代理。

因此,您似乎无法使用 Cloud SQL 代理。我让它全部工作的唯一方法是向全世界开放 SQL 端口,以便托管 VM 实例可以通过其公共 IP 地址连接到它,但这是一个可怕的解决方案!

是否有实际支持的方式来执行此操作?谷歌的任何人都可以回答吗?

0 投票
2 回答
1862 浏览

java - 示例项目“hello-world”项目在尝试在 App 引擎上运行时显示错误

我正在尝试部署“Hello, World!” 用于托管 VM 的应用引擎 Java 8 上的 Java 并在运行 mvn gcloud:deploy 时遇到下面列出的错误。在我的本地机器(mvn jetty:run)上运行它时我没有遇到任何问题。有人可以指出我做错了什么吗?

maven执行加-X后请查看完整日志

安装 Python 并将其添加到我的 PATH 后,我收到以下异常:

0 投票
0 回答
101 浏览

google-app-engine - 运行 Go 1.6 的托管 VM 在维护 HTTP/2 客户端时遇到问题

我正在尝试使用他们的 HTTP/2 API 向 Apple 的 APNS 服务发送请求,并且我的服务在本地运行良好,但是一旦它在托管 VM 上,似乎底层套接字在几分钟后就死了,Go HTTP 库是无法优雅地处理它。

我看到的是请求工作正常(获得响应)一段时间,但如果它空闲几分钟,连接将需要几分钟才能超时read tcp 172.17.0.4:35395->17.172.234.19:443: read: connection timed out(显然忽略了我指定的 10 秒超时)。

我以前特别遇到过托管虚拟机的保活问题,但谷歌表示应该修复它。有谁知道如何避免这个问题?

我正在以这种方式创建一个 HTTP/2 客户端:

0 投票
1 回答
104 浏览

java - 托管虚拟机未运行 Cloud SQL 代理

使用 Java 应用程序启动托管 VM,以下 appengine-web.xml

我似乎没有在托管 VM 上运行 Cloud SQL 代理。我是否需要添加 app.yaml 文件或在 appengine-web.xml 中定义其他内容?

0 投票
2 回答
40 浏览

google-app-engine - 如何确定在 GAE 托管 VM 上启动请求的时间?

在 Google App Engine 上,请求可以通过多种方式启动:网络请求、cron 作业、任务队列,可能还有其他方式。

(尤其是在托管 VM 上)如何 确定当前请求开始的时间?

一种解决方案是检测所有入口点,并将开始时间保存在某处,但如果有一个环境变量或告诉请求何时开始的东西会很好。这很重要的原因是因为许多 GAE 请求都有截止日期(在各种情况下为 60 秒或 10 分钟),当您在做一些额外的工作时确定您在请求中剩余的时间很有帮助。