在不监听传入的 HTTP 请求的情况下在 Google Cloud Run 上运行 go 程序

我写了一个 Go 程序,默认情况下根本不需要检索外部 http 调用。我尝试将它部署到 Google Cloud Run 上并收到以下错误:

用户提供的容器无法启动并侦听由 PORT=8080 环境变量提供的端口。此修订的日志可能包含更多信息。

我知道这是因为我的代码没有提供端口。正如这个答案所说:

容器必须在由 Cloud Run 定义并在 $PORT 环境变量中提供的端口上侦听传入的 HTTP 请求

我的问题是,如果不想定义任何端口并且只想运行我在本地运行的相同代码,我该怎么办?是否有替代解决方案可以在没有它的情况下部署我的代码,或者如果我想从 Cloud Run 运行代码我必须添加它?


宝慕林4294392
浏览 112回答 1
1回答

胡说叔叔

对于不需要 HTTP 侦听器(HTTP 服务器)的容器,请使用 Cloud Run Jobs。Cloud Run Jobs 处于预览状态。您的 Go 程序必须退出,退出代码为 0 表示成功,非零表示失败。您的容器不应侦听端口或启动 Web 服务器。环境变量不同于 Cloud Run。容器实例一直运行到容器实例退出、达到任务超时或容器崩溃为止。任务超时默认为 10 分钟,最长为一小时。Cloud Run - 创建工作
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go