GCP的Cloud Run可以用于非HTTP服务吗?

时间:2020-07-26 23:03:18

标签: google-cloud-platform google-kubernetes-engine google-cloud-run

我是GCP的新手,正在尝试制作正面和反面的文字。到目前为止,我已经对GKE和Cloud Run有了经验。

在GKE中,我可以在我喜欢的任何端口下为任何类型的服务创建工作负载(部署),并为其分配资源。然后,我可以创建一个负载平衡器并打开从Pod到Internet的端口。负载平衡器具有一个IP,我可以使用该IP来访问基础容器。

另一方面,当我创建一个可以运行的服务时,我将为其提供一个docker映像和一个端口,一旦该服务启动并运行,它将公开一个HTTPS URL!我在Cloud Run中指定的端口是docker的内部端口,如果要访问URL,则必须通过端口80进行。

这是否意味着Cloud Run仅设计用于端口80下的HTTP服务?还是我想念什么?

1 个答案:

答案 0 :(得分:4)

技术上为“否”,Cloud Run不能用于非HTTP服务。请参阅Cloud Run的container runtime contract

而且是“某种”:

  1. 可以将Cloud Run服务的URL保留为“私有”(默认情况下为私有),这意味着除某些特定身份外,任何人都不能调用Cloud Run服务。参见this page to learn more
  2. 容器必须在特定端口上侦听请求,并且它在请求处理之外没有CPU。但是,将二进制文件包装到轻型HTTP服务器中非常容易。例如,请参见使用Shell sample来调用任意Shell脚本的very small Go HTTP sevrer