Skip to content
返回云服务

GCP Serverless 与 Cloud Run

将容器化应用部署到 Google Cloud Run,支持自动缩放到零和按使用付费。

GCP进阶

为什么

Cloud Run 运行任何容器,无需 Kubernetes 复杂性。自动缩放到零(无空闲成本),可扩展到 1000+ 实例,按请求计费精度 100ms。

Docker 化应用的最佳 serverless 选择。

何时使用

有 Docker 镜像、想要无厂商锁定的 serverless(容器可移植)且需要自动缩放到零时使用 Cloud Run。适合 API、后台 worker 和 ML 推理。

如何做

1. 安装 gcloud CLI — gcloud init, gcloud auth login 2. 启用 API — gcloud services enable run.googleapis.com 3. 构建镜像 — docker build -t gcr.io/PROJECT-ID/myapp . 4. 推送镜像 — docker push gcr.io/PROJECT-ID/myapp 5. 部署 — gcloud run deploy myapp --image gcr.io/PROJECT-ID/myapp --region us-central1 6. 配置 — 设置内存、CPU、并发、最小/最大实例、环境变量 7. 自定义域名 — gcloud run domain-mappings create --service myapp --domain api.example.com 8. CI/CD — git push 触发 Cloud Build,合并时自动部署

示例

# Dockerfile — 任何容器都可以 FROM node:20-slim WORKDIR /app COPY package*.json ./ RUN npm ci --omit=dev COPY . . CMD ["node", "server.js"] # 带配置部署 gcloud run deploy myapp \ --source . \ --region us-central1 \ --memory 512Mi \ --cpu 1 \ --concurrency 80 \ --min-instances 0 \ --max-instances 100 \ --set-env-vars "DATABASE_URL=postgres://..." \ --no-allow-unauthenticated # Cloud Build CI/CD — cloudbuild.yaml steps: - name: gcr.io/cloud-builders/docker args: ["build", "-t", "gcr.io/$PROJECT_ID/myapp", "."] - name: gcr.io/cloud-builders/docker args: ["push", "gcr.io/$PROJECT_ID/myapp"] - name: gcr.io/google.com/cloudsdktool/cloud-sdk args: - run - deploy - myapp - --image - gcr.io/$PROJECT_ID/myapp - --region - us-central1

常见问题

  • ⚠min-instances=0 时冷启动 2-8 秒 — 空闲后首次请求慢
  • ⚠默认 60 秒请求超时 — 长运行请求被杀,设置 --timeout
  • ⚠并发太高 — 512Mi 上 1000 并发导致 OOM,按负载调整
  • ⚠私有资源需 VPC 连接器 — Cloud Run 默认是外部的

最佳实践

  • ✓延迟敏感 API 设 min-instances=1 — 消除冷启动,约 $15/月
  • ✓启动用 --cpu-boost — 冷启动时额外 CPU,之后无额外成本
  • ✓容器保持 100MB 以内 — 更快冷启动,用多阶段构建
  • ✓批处理用 Cloud Run jobs(非 services)— 无请求超时,最长 24 小时

常见问题解答

什么是GCP Serverless 与 Cloud Run?它解决什么问题?

将容器化应用部署到 Google Cloud Run,支持自动缩放到零和按使用付费。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手GCP Serverless 与 Cloud Run?

两步即可跑通:① 安装 gcloud CLI — gcloud init, gcloud auth login;② 启用 API — gcloud services enable run.googleapis.com。建议先用免费套餐验证流程,再接入生产环境。

GCP Serverless 与 Cloud Run 最容易踩的坑是什么?

最高频的问题是:min-instances=0 时冷启动 2-8 秒 — 空闲后首次请求慢。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

GCP Serverless 与 Cloud Run 的最佳实践有哪些?

GCP Serverless 与 Cloud Run 的最佳实践包括:延迟敏感 API 设 min-instances=1 — 消除冷启动,约 $15/月;启动用 --cpu-boost — 冷启动时额外 CPU,之后无额外成本;容器保持 100MB 以内 — 更快冷启动,用多阶段构建。其中首条「延迟敏感 API 设 min-instances=1 — 消除冷启动,约 $15/月」应作为团队默认规范写入 IaC 模板。

GCP Serverless 与 Cloud Run 如何控制成本与避免账单意外?

三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。GCP Serverless 与 Cloud Run 多数提供免费套餐,先在免费额度内验证再放量。