摘要

  • Cloud Run 最小实例为服务维持可快速响应的热容量,空闲时也收费。Google 说明具体实例可随时重启,设定的最低数量是尽力达成的目标。
  • 按实例计费可让 CPU 在请求之外工作,适合短时后台任务;空闲容器仍可能被关闭。Google 给 SIGTERM 处理十秒宽限,并建议异步工作具备重试能力。

座位有人值班,不等于同一个人一直坐着

一个服务首请求太慢,最小实例数看起来像正确答案:预留热容器,让下一位用户少等。Google 对这份待命明确收费。按请求计费时,闲置热实例用较低空闲费率;按实例计费时,容器整个生命周期按默认费率收。账单买的是接单能力。

容易混淆的是座位和坐在上面的进程。Google 写明最小实例可随时重启。配置值又只是尽力维持的目标;区域资源不足、基础设施调配、应用崩溃、配额或账单限制,都可能让实际数量暂时低于它。官方建议至少三个实例提高可用性,并没有把其中任何一个容器许给某项任务直到完成。看见“最小一台”,不能据此推断内存里的工作仍由原进程执行。

按实例计费使这层误会更诱人,因为 CPU 在响应结束后仍可运行,短时后台处理确实有了空间。但 Google 同页提醒,空闲实例即使由最低数量保持热态,也可随时关闭。捕获 SIGTERM 后只有十秒宽限供收尾或写入检查点。做不完的任务需要持久状态与重试。Google 提及 Cloud Tasks 的异步重试,也提供另一种可连续运行最长七天、带重启策略的 Cloud Run instance 资源,供单个长期进程选择。

购买决策不能只盯实例下限。服务最小实例解决请求延迟,任务可靠性取决于完成记录、幂等重试和故障恢复。Google 还说,对大部分时间空闲的单实例工作,独立 Cloud Run instance 可能比按实例计费的最小服务实例便宜;哪种划算须看实际流量和费率。具体客户缺的是重启、任务时长与恢复、延迟和费用记录。有这些数,才能给“保温”标上对的价格。

资料来源