问题标签 [google-cloud-run]

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 投票
2 回答
800 浏览

google-cloud-platform - Cloud Run 内存限制

如何在自定义 GKE 集群上运行使用超过 2 GB 的 Cloud Run 容器?

由于 Cloud Run 使用 knative,我想知道是否可以使用更多分配/允许的内存限制调整部署描述符以在 GKE 上运行它。

0 投票
2 回答
505 浏览

google-cloud-platform - cloudrun(或 knative)上的简单 HelloWorld 应用程序似乎太慢了

我在 上部署了一个示例 HelloWorld 应用程序Google Cloud Run,基本上k-native,每次调用 API 最多需要 1.4 秒,以端到端的方式。应该是这样吗?

示例应用位于https://cloud.google.com/run/docs/quickstarts/build-and-deploy

我在本地主机上部署了相同的应用程序作为 docker 容器,端到端大约需要 22 毫秒。

GKE集群上的同一个应用程序端到端大约需要 150 毫秒。

我在 FaaS 方面有一点经验,我希望 API 调用会在我连续调用它们时变得更快。(如冷启动与热启动)

但无论我执行多少次命令,它都不会低于 1.4 秒。

我认为网络距离不是这里的主导因素。通过 ping 到 API 端点的往返时间只有 50 毫秒,或多或少

所以我的问题如下:

  1. 它可能是一个意外的错误吗?这是一个最终会解决的技术难题吗?或者也许没有什么问题,它只是 SLA 的k-native

  2. 如果Google Cloud Run和/或没有问题k-native,那么我的 API 调用的主要耗时因素是什么?我很想学习这个机制。


额外细节:

  • 我所在的位置:首尔/亚洲
  • 我的 Cloud Run 应用的区域:us-central1
  • 我正在测试的 Internet 连接类型:商业、有线
  • 应用的容器镜像大小:343.3MB
  • Container Registry 使用的存储桶位置:gcr.io

来自首尔/亚洲的WebPageTest(预热时间):

  • 内容类型:文本/html
  • 请求开始:0.44 秒
  • DNS 查找:249 毫秒
  • 初始连接:59 毫秒
  • SSL 协商:106 毫秒
  • 到第一个字节的时间:961 毫秒
  • 内容下载:2 毫秒

来自芝加哥/美国的WebPageTest (预热时间):

  • 内容类型:文本/html
  • 请求开始:0.171 秒
  • DNS 查找:41 毫秒
  • 初始连接:29 毫秒
  • SSL 协商:57 毫秒
  • 到第一个字节的时间:61 毫秒
  • 内容下载:3 毫秒

Cloud Run 产品经理 Steren 的回答

我们检测到从全球某些特定区域调用 Cloud Run 服务时延迟较高。可悲的是,首尔似乎就是其中之一。

0 投票
0 回答
148 浏览

google-cloud-platform - GKE 上的 Cloudrun - 重启问题

我正在尝试实现要在 GKE 集群上安排并由 CloudRun 执行的长时间运行的任务。我面临的问题是我的容器在中途重新运行了代码,在同一个“pod”上。这将在下面通过代码和示例输出进行解释。

用于从 cmdline 启动 CloudRun 的 POST 方法

出于测试目的在 CloudRun 上运行的代码:

输出:

睡眠1 @ 2019-05-29 14:40:47.781966

睡眠2 @ 2019-05-29 14:42:47.880512

睡眠 3 @ 2019-05-29 14:44:47.976342

睡眠 1 @ 2019-05-29 14:45:47.793551 <-- 1

睡觉4 @ 2019-05-29 14:46:48.069593

睡眠 2 @ 2019-05-29 14:47:47.892927 <-- 2

睡觉5 @ 2019-05-29 14:48:48.169817

睡眠 3 @ 2019-05-29 14:49:47.987202 <-- 3

...

通过它 5 分钟从头开始重新运行代码,同时仍然运行原始代码。

来自 queue-proxy/istio-proxy 的日志

问题出现在“2019/06/14 09:12:42 http:代理错误:上下文已取消”

0 投票
3 回答
907 浏览

angular - 如何将 http:// 重定向到 https://,如 firebase 托管

Firebase 托管已经在 firebase.json 中有 https:// 重定向。我有一个 Angular 应用程序,为了准备 SSR,我从 firebase 托管迁移到 Cloud Run。起初我不知道我是否应该与 Angular Universal 混淆或这样做,我在这里看到了一个类似的问题,但它是用 Nginx 回答的,这不是我需要的。

我试图用 server.ts 文件做一些非常愚蠢的事情,但这根本不是答案。老实说,我不知道从哪里开始。我已经搜索了谷歌的答案,包括谷歌云运行文档:

https://cloud.google.com/run/docs/authenticating/public

但我不知道从这里去哪里。

0 投票
1 回答
578 浏览

google-cloud-platform - 由于 SQL 云配置无效,云运行无法启动

我按照文档从云运行中启用 SQL Cloud。但根据文档:

您的容器实例现在可以通过自动激活和配置的 Cloud SQL 代理连接到 Cloud SQL。/cloudsql/[CONNECTION NAME]在您的代码中,您可以使用unix 套接字连接到 Cloud SQL 实例。

最后一句是什么意思?我是否需要使用通常的连接字符串进行连接,例如: jdbc:postgresql://localhost:5432/${DATABASE_NAME}

就我而言,这就是阻止容器启动的原因。org.postgresql.util.PSQLException:连接到 localhost:5432 被拒绝。检查主机名和端口是否正确以及 postmaster 是否接受 TCP/IP 连接。

我还使用以下命令“添加”SQL 云: gcloud beta run deploy --image gcr.io/[PROJECT_ID/[IMAGE_NAME]:[TAG] --add-cloudsql-instances [CONNECTION_NAME]

0 投票
0 回答
41 浏览

serverless-framework - GKE CloudRun - 请求级别的资源控制

我想知道如何在基于 GKE 的 CloudRun 部署容器上增加每个单独请求可用的 CPU 内核数量。虽然可以指定--cpu控制服务限制的选项,但我无法找到控制请求 CPU 分配的方法

我还想知道是否可以指定--timeout大于 10 分钟?

0 投票
1 回答
742 浏览

docker - 无法将容器映像部署到 Cloud Run

尝试将映像部署到 Cloud Run 时出现以下“权限被拒绝”错误:

应用程序无法启动:无法创建初始化进程:无法加载/usr/local/bin/dumb-init:权限被拒绝

Dockerfile 包含以下说明:

镜像在本地运行成功,但由于上述错误无法部署到 Cloud run。

0 投票
1 回答
109 浏览

google-cloud-run - 请求取消不会传播到云运行容器

当发起服务取消发送到云运行服务的 HTTP 请求时,取消/关闭的连接不会传播到云运行容器内正在服务的请求。

示例代码:

在本地运行此代码,发送到http://localhost:8080然后使用 ctrl-c 取消的 curl 请求将在日志中显示为“上下文已取消”。与部署在云中运行并取消的服务相同的请求将在 1 分钟后在日志中显示为成功请求。

0 投票
1 回答
3865 浏览

node.js - 带有 socket.io 的谷歌云函数

我的理解是,要使用 socket.io 建立持久的套接字连接,Node.js 服务器应该始终运行。使用 Google Cloud Functions 并没有始终运行的 Node.js 服务器,因此无法保持套接字连接处于活动状态。

使用正在运行的 Node.js 服务器的 Cloud Run 是使用 socket.io 处理多个套接字连接的最佳选择吗?

0 投票
2 回答
241 浏览

google-cloud-platform - 托管在 Google Cloud Run 中的 Node Express REST

我正在考虑设置 Google Cloud Run 来托管 Docker 容器服务。如果现有服务是侦听端口的 Node - Express REST 服务,我是否需要删除 Express,因此它不会持续运行/侦听并收费?