Cloud Run 速查

部署服务

# 从容器镜像部署 gcloud run deploy my-service \ --image=gcr.io/my-project/my-app:v1.0 \ --region=us-central1 \ --allow-unauthenticated \ --port=8080 \ --memory=512Mi \ --cpu=1 # 从源码部署(自动构建) gcloud run deploy my-service \ --source=. \ --region=us-central1 # 列出服务 gcloud run services list --region=us-central1

流量分流

# 部署新版本但不切流量 gcloud run deploy my-service \ --image=gcr.io/my-project/my-app:v2.0 \ --region=us-central1 \ --no-traffic # 金丝雀发布(10% 流量到新版本) gcloud run services update-traffic my-service \ --region=us-central1 \ --to-revisions=my-service-00002-abc=10,my-service-00001-xyz=90 # 全量切换到最新 gcloud run services update-traffic my-service \ --region=us-central1 \ --to-latest

环境变量与 Secret

# 设置环境变量 gcloud run services update my-service \ --region=us-central1 \ --set-env-vars="DB_HOST=10.0.0.1,LOG_LEVEL=INFO" # 挂载 Secret Manager 密钥为环境变量 gcloud run services update my-service \ --region=us-central1 \ --set-secrets="DB_PASSWORD=db-password:latest" # 挂载密钥为文件 gcloud run services update my-service \ --region=us-central1 \ --set-secrets="/secrets/api-key=api-key:latest"

并发与弹性伸缩

# 设置并发数 gcloud run services update my-service \ --region=us-central1 \ --concurrency=80 # 设置最小实例(避免冷启动) gcloud run services update my-service \ --region=us-central1 \ --min-instances=2 # 设置最大实例(控制成本) gcloud run services update my-service \ --region=us-central1 \ --max-instances=100

网络与认证

# 允许公开访问 gcloud run services add-iam-policy-binding my-service \ --region=us-central1 \ --member="allUsers" \ --role="roles/run.invoker" # 仅允许内部流量 gcloud run services update my-service \ --region=us-central1 \ --ingress=internal # 连接 VPC(访问 Cloud SQL、Redis 等) gcloud run services update my-service \ --region=us-central1 \ --vpc-connector=my-vpc-connector